熊猫样式-更改字体大小和格式浮动/应用背景渐变

问题描述

我正在构建一个应用程序,该应用程序以各种可视形式显示股票相关性数据,包括应用了热图的矩阵。我的热图是通过将相关矩阵数据帧传递到IPy Widgets Output来创建的,因此以后可以将其显示为VBox的一部分。我已经成功应用了背景渐变并将数字格式化为2dp。谁能帮我编辑该功能以减小字体大小,我只想将其缩小一点?

注意:我选择使用matplotlib上的数据框样式来执行此操作,因为我遇到很多问题,无法以所需的方式显示输出。我也有一个功能,可以下载数据框以使用所应用的样式来表现出色。

我尝试将以下代码行放在笔记本的开头,以便可以将其保留在函数之外,但是一旦将数据帧传递到Output,它似乎就会被忽略。

pd.options.display.float_format = "{:,.2f}".format 

这是我的代码示例:

import seaborn as sns
import ipywidgets as ipw
import pandas as pd
import numpy as np

#Sample Data
data = np.random.randint(5,30,size=500)
df = pd.DataFrame(data.reshape((50,10)))
corr = df.corr()

#Function produces dataframe as Output
def output_heatmap_df(df):
    out = ipw.Output()
    with out:
        display(df.style\
                .background_gradient(cmap=sns.diverging_palette(220,10,as_cmap=True),axis=None).format("{:,.2f}"))
        out.layout.width='1600px'
    return out

output_heatmap_df(corr)

解决方法

万一有人遇到这个问题,下面的代码最终对我有用:

def output_heatmap_df(df):
    out = ipw.Output()
    with out:
        display(df.style\
                .background_gradient(cmap=sns.diverging_palette(220,10,as_cmap=True),axis=None).format("{:,.2f}")
                .set_properties(**{'text-align':'center','font-size':'10px'})
                .set_table_styles([{'selector':'th','props':[('text-align','center'),('font-size','10px')]}])
               )
        out.layout.width='1600px'
    return out