matplotlib的cell color有问题下面是一个简单的代码,它在matplotlib的帮助下绘制了一个表格。但是,如果第4列中的某个数字的值为负,我希望将特定行着色为红色。没有得到任何地方,因为我只能填充一个单元格的颜色,而不是整行。
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
import pandas as pd
columns = ('1', '2', '3', '4', '5')
rows = ["A", "B"]
cell_text = [['1348','12','177','-0.12','1.7'],
['2315','12','174','-0.05','2.1'],
['1147','11','137',' 0.02','2.4'],
['1375','11','128',' 0.1','3.4']
]
df=pd.DataFrame(cell_text)
fig, ax = plt.subplots()
ax.axis('tight')
ax.axis('off')
the_table = ax.table(cellText=df.values,colLabels=columns,loc='center')
i=0
for j, row in df.iterrows():
if (float(df.iloc[j,3]) > 0):
the_table.get_celld()[(i,j)].set_facecolor("blue")
else:
the_table.get_celld()[(i,j)].set_facecolor("green")
i=i+1
plt.show()
字符串
2条答案
按热度按时间nwlls2ji1#
我不太熟悉matplotlib的表格,但是你可以设置单元格的颜色,设置行的颜色可以用一个简单的for循环来完成:
字符串
的数据
gg0vcinb2#
事实上,
the_table.get_celld()
返回一个dict,所以你必须迭代元素才能给它们上色,因为set_facecolor
方法适用于单元格而不是dict。字符串