python - 如何更改 Matplotlib 表的透明度/不透明度?
问题描述
目的:制作matplotlib.pyplot.table
不透明的,以便背景图的主要和次要网格线不会出现在前景表中。
问题:我无法正确操作matplotlib.pyplot.table
kwarg alpha
或matplotlib.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()
产生以下内容:
尝试:
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)
然后通过调用set_alpha
:
the_table.set_alpha(1.0)
他们都没有解决问题或引发错误。
解决方案
alpha
afaik 不适用于表格,但您可以更改zorder
:
the_table = plt.table(cellText=table_vals,
colWidths = [0.1]*3,
rowLabels=row_labels,
colLabels=col_labels,
loc='center right', zorder=3)
在matplotlib.axes.Axes.tablealpha
中提到了关键字参数。但这似乎没有任何效果。
更改zorder
(元素的垂直顺序)会使表格出现在图的顶部。这不允许半透明表,但至少是使网格线消失的一种解决方法。
推荐阅读
- jquery - jquery datatable ajax 没有可用的数据 mvc
- python - 熊猫合并或加入较小的数据框
- batch-file - bat 文件回显多行
- mysql - 在MySql中一对多关系的情况下,如何根据同一行另一列的值获取一列的值
- amazon-web-services - 如何使用MWS API区分亚马逊上同一卖家的两个不同商店的订单?
- angular - 如何使用Angular6在父组件中添加多个组件
- javascript - JavaScript 数组与对象的性能
- regex - 正则表达式的无效匹配('\pL' 在字符类中不起作用)
- google-places-api - 谷歌地方,不同的 api 密钥得到“你已经超出了这个 API 的每日请求配额”。
- javascript - 无法让我在 React 中的表单正常工作