Python 基于数据更改图表列颜色
我有一个python脚本,它解析csv文件并从中创建一个混合图表 如果当前进度比上一个进度下降了5倍以上,我想将CurrentProg条的颜色更改为红色。有可能这样做吗 例如,下表是我正在解析的csv文件的示例。我希望Derick和Lisa的CurrentProg条为红色,如下图所示 名称OldProg PrevProg CurrentProg目标 德里克45 60 52 90 珍娜56878990 丽莎78 93 76 90 哈里98 84 79 90 下面是一段代码,用于解析csv文件并将其放入图表的条形图/线条中Python 基于数据更改图表列颜色,python,matplotlib,Python,Matplotlib,我有一个python脚本,它解析csv文件并从中创建一个混合图表 如果当前进度比上一个进度下降了5倍以上,我想将CurrentProg条的颜色更改为红色。有可能这样做吗 例如,下表是我正在解析的csv文件的示例。我希望Derick和Lisa的CurrentProg条为红色,如下图所示 名称OldProg PrevProg CurrentProg目标 德里克45 60 52 90 珍娜56878990 丽莎78 93 76 90 哈里98 84 79 90 下面是一段代码,用于解析csv文件并将其
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.read_csv("file.csv")
names = df['name'].values
x = np.arange(len(names))*2
w = 0.40
plt.bar(x-w, df['Old Progress'].values, width=w*0.7, label='OldProg', color = "cyan")
plt.bar(x, df['Previous Progress'].values, width=w*0.7, label='PrevProg', color = "green")
plt.bar(x+w, df['Current Progress'].values, width=w*0.7, label='CurrentProg', color = "blue")
plt.plot(x, df['Goal'].values, lw=2, label='Goal', color = "red")
如果我需要进一步澄清,请告诉我。谢谢。plt.bar可以接受与条形图中项目数长度相同的颜色列表,而不仅仅是单一颜色
因此,可以计算条形图中每个元素的颜色,并将其作为颜色参数传递
像这样的东西会起作用:
df=pd.read_csv'test.csv'
进度差异=df['CurrentProg']-df['PrevProg']
颜色=[“红色”表示d<-5,其他“灰色”表示d正在进行中\u差异]
...
plt.barx+w,df['CurrentProg']值,宽度=w*0.7,
label='CurrentProg',color=colors