如何更改Matplotlib表的透明度/不透明度?

Her*_*eer 6 python matplotlib

目标:使matplotlib.pyplot.table 不透明,使背景图的主要和次要网格线不出现在前景表中.

问题:我无法正确操作matplotlib.pyplot.tablekwarg alphamatplotlib.artist.Artist.set_alpha函数来更改绘图中绘制的表格的透明度.

MWE:请考虑以下代码示例作为问题的答案:如何在Matplotlib中的绘图上放置表格?

import matplotlib.pylab as plt

plt.figure()
ax=plt.gca()
plt.grid('on', linestyle='--')
y=[1,2,3,4,5,4,3,2,1,1,1,1,1,1,1,1]
col_labels=['col1','col2','col3']
row_labels=['row1','row2','row3']
table_vals=[[11,12,13],[21,22,23],[31,32,33]]
#
the_table = plt.table(cellText=table_vals,
                  colWidths = [0.1]*3,
                  rowLabels=row_labels,
                  colLabels=col_labels,
                  loc='center right')
plt.plot(y)
plt.show()
Run Code Online (Sandbox Code Playgroud)

产生以下内容:

matplotlib表

尝试:

我试图通过添加alpha关键字来摆脱表格中的背景网格线plt.table:

the_table = plt.table(cellText=table_vals,
                  colWidths = [0.1]*3,
                  rowLabels=row_labels,
                  colLabels=col_labels,
                  loc='center right',
                  alpha=1.0)
Run Code Online (Sandbox Code Playgroud)

然后通过调用set_alpha:

the_table.set_alpha(1.0)
Run Code Online (Sandbox Code Playgroud)

他们都没有解决问题或引发错误.

Sco*_*y1- 4

alphaafaik 不适用于表格,但您可以更改zorder

the_table = plt.table(cellText=table_vals,
                  colWidths = [0.1]*3,
                  rowLabels=row_labels,
                  colLabels=col_labels,
                  loc='center right', zorder=3)
Run Code Online (Sandbox Code Playgroud)

matplotlib.axes.Axes.tablealpha中提到了关键字参数。但似乎没有什么效果。
更改zorder(元素的垂直顺序)使表格出现在绘图的顶部。这不允许半透明表格,但至少是一种使网格线消失的解决方法。