在matplotlib.axes.axes.table中设置alpha?

在matplotlib.axes.axes.table中设置alpha?,matplotlib,alpha,Matplotlib,Alpha,我试图理解如何在matplotlib表中设置alpha级别。我试着用一个全局rcParams设置它,但不太确定怎么做?(我想更改标题颜色中的透明度)。一般来说,我不确定这是否可以在全局范围内完成,如果不能,如何将参数传递给表?Thx提前 import pandas as pd import numpy as np import matplotlib.pyplot as plt from cycler import cycler import six # Set universal font a

我试图理解如何在matplotlib表中设置alpha级别。我试着用一个全局rcParams设置它,但不太确定怎么做?(我想更改标题颜色中的透明度)。一般来说,我不确定这是否可以在全局范围内完成,如果不能,如何将参数传递给表?Thx提前

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from cycler import cycler
import six

# Set universal font and transparency
plt.rcParams["font.family"] = "DejaVu Sans"
plt.rcParams['axes.prop_cycle'] = cycler(alpha=[0.5])

raw_data = dict(Simulation=[42, 39, 86, 15, 23, 57],
                SP500=[52, 41, 79, 80, 34, 47],
                NASDAQ=[62, 37, 84, 51, 67, 32],
                Benchmark=[72, 43, 36, 26, 53, 88])

df = pd.DataFrame(raw_data, index=pd.Index(
    ['Sharpe Ratio', 'Sortino Ratio', 'Calmars Ratio', 'VaR', 'CVaR', 'Max DD'], name='Metric'),
                  columns=pd.Index(['Simulation', 'SP500', 'NASDAQ', 'Benchmark'], name='Series'))


def create_table(data, col_width=None, row_height=None, font_size=None,
                 header_color='#000080', row_colors=None, edge_color='w',
                 header_columns=0, ax=None, bbox=None):
    if row_colors is None:
        row_colors = ['#D8D8D8', 'w']
    if bbox is None:
        bbox = [0, 0, 1, 1]
    if ax is None:
        size = (np.array(data.shape[::-1]) + np.array([0, 1])) * np.array([col_width, row_height])
        fig, ax = plt.subplots(figsize=size)
        ax.axis('off')

    ax.axis([0, 1, data.shape[0], -1])

    data_table = ax.table(cellText=data.values, colLabels=data.columns, rowLabels=data.index,
                          bbox=bbox, cellLoc='center', rowLoc='left', colLoc='center',
                          colWidths=([col_width] * len(data.columns)))
    cell_map = data_table.get_celld()
    for i in range(0, len(data.columns)):
        cell_map[(0, i)].set_height(row_height * 0.20)

    data_table.auto_set_font_size(False)
    data_table.set_fontsize(font_size)

    for k, cell in six.iteritems(data_table._cells):
        cell.set_edgecolor(edge_color)
        if k[0] == 0 or k[1] < header_columns:
            cell.set_text_props(weight='bold', color='w')
            cell.set_facecolor(header_color)
        else:
            cell.set_facecolor(row_colors[k[0] % len(row_colors)])

    return ax


ax = create_table(df, col_width=1.5, row_height=0.5, font_size=8)

ax.set_title("Risk Measures", fontweight='bold')

ax.axis('off')

plt.tight_layout()

plt.savefig('risk_parameter_table[1].pdf')

plt.show()
将熊猫作为pd导入
将numpy作为np导入
将matplotlib.pyplot作为plt导入
从cycler导入cycler
进口六
#设置通用字体和透明度
plt.rcParams[“font.family”]=“DejaVu Sans”
plt.rcParams['axes.prop_cycle']=循环器(alpha=[0.5])
原始数据=dict(模拟=[42,39,86,15,23,57],
SP500=[52,41,79,80,34,47],
纳斯达克=[62,37,84,51,67,32],
基准=[72,43,36,26,53,88])
df=pd.DataFrame(原始数据,索引=pd.index(
['Sharpe Ratio'、'Sortino Ratio'、'Calmars Ratio'、'VaR'、'CVaR'、'Max DD'],name='Metric'),
columns=pd.Index(['Simulation','SP500','NASDAQ','Benchmark'],name='Series'))
def create_表格(数据,列宽=无,行高=无,字体大小=无,
标题颜色='#000080',行颜色=无,边颜色='w',
标题(列=0,ax=无,bbox=无):
如果“行颜色”为“无”:
行颜色=['#D8D8D8',w']
如果bbox为无:
bbox=[0,0,1,1]
如果ax为无:
size=(np.array(data.shape[::-1])+np.array([0,1])*np.array([col\u-width,row\u-height])
图,ax=plt.子批次(图尺寸=尺寸)
ax.轴(“关闭”)
ax.轴([0,1,data.shape[0],-1])
data_table=ax.table(cellText=data.values,colLabels=data.columns,rowLabels=data.index,
bbox=bbox,cellLoc='center',rowLoc='left',colLoc='center',
colWidths=([col_width]*len(data.columns)))
cell\u map=data\u table.get\u celld()
对于范围(0,len(data.columns))中的i:
单元映射[(0,i)]。设置单元高度(行高度*0.20)
数据表。自动设置字体大小(错误)
数据表。设置字体大小(字体大小)
对于k,六个.iteritems(数据表.\u单元格)中的单元格:
单元格。设置边缘颜色(边缘颜色)
如果k[0]==0或k[1]<标题列:
cell.set_text_props(weight='bold',color='w')
单元格设置面颜色(标题颜色)
其他:
单元格.设置面颜色(行颜色[k[0]%len(行颜色)])
返回斧头
ax=创建表格(df,列宽=1.5,行高=0.5,字体大小=8)
ax.集合标题(“风险度量”,fontwweight='bold')
ax.轴(“关闭”)
plt.紧_布局()
plt.savefig('risk_parameter_table[1].pdf'))
plt.show()
您可以
在表格的
\u单元格上手动设置\u alpha()

如果只想更改标题,请检查
行==0
列==-1

def create_表(…):
...
对于(行,列),数据表中的单元格。\u cells.items()
如果(行==0)或(列==1):
单元设置α(0.5)
返回斧头

非常感谢!你太棒了!