Python 如果数字低于0,则在条形图值上绘制不同的颜色
我需要一些绘制数据的帮助。有没有办法用不同的颜色绘制条形图。例如,我想有一个图例,显示一个绿色圆点和文本正,红色圆点和文本负。此外,如果图形值低于0,则添加红色。如果高于0,是否添加绿色?这可能吗?如能在正确的方向上给予帮助,我们将不胜感激 例如: 可能吗 请参见下面的我的代码:Python 如果数字低于0,则在条形图值上绘制不同的颜色,python,matplotlib,Python,Matplotlib,我需要一些绘制数据的帮助。有没有办法用不同的颜色绘制条形图。例如,我想有一个图例,显示一个绿色圆点和文本正,红色圆点和文本负。此外,如果图形值低于0,则添加红色。如果高于0,是否添加绿色?这可能吗?如能在正确的方向上给予帮助,我们将不胜感激 例如: 可能吗 请参见下面的我的代码: import matplotlib.pyplot as plt import pandas as pd import matplotlib import matplotlib.pypl
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
df = pd.DataFrame({'Years': ['2015', '2016', '2017', '2018'],
'Value': [-495982.0, 405549.0, -351541.0, 283790.0]})
values = df["Value"]
values = values / 1e3
asOfDates = df['Years']
Value = df['Value']/100
fig, ax = plt.subplots()
ax.set_title('Plotting Financials')
ax.set_xlabel('Years')
ax.set_ylabel('value')
plt.bar(asOfDates,values)
ax.get_yaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))
plt.show()
plt.bar接受一个参数color=,该参数可以是单一颜色,也可以是每个条都有一种颜色的列表。列表可以通过列表理解来构造,根据约束给出颜色
条形图通常仅通过plt.bar…,label='my barplot'在图例中生成一个条目。要获得多个标签,并使其成为圆形而不是矩形,可以创建元素
下面是一些示例代码,可以帮助您开始:
作为pd进口熊猫
将matplotlib.pyplot作为plt导入
从matplotlib.lines导入Line2D
导入matplotlib
df=pd.数据帧{'Years':['2015','2016','2017','2018'],
“值”:[-495982.040549.0,-351541.0,283790.0]}
值=df[值]
值=值/1e3
asOfDates=df[“年”]
Value=df['Value']/100
图,ax=plt子批次
ax.设置标题“绘制财务数据”
ax.set_xlabel'Years'
ax.set_ylabel'value'
plt.barasOfDates,values,color=['r'如果v<0,其他'g'表示v的值]
ax.get_yaxis.set_major_formattermatplotlib.ticker.FuncFormatterlambda x,p:FormattIntx,,'
图例句柄=[Line2D[0],[0],线宽=0,marker='o',markerfacecolor=color,markersize=12,markeredgecolor='none'
对于['g','r']]中的颜色
ax.legendlegend_句柄,[“正”、“负”]
节目
这回答了你的问题吗?这正是我要找的!非常感谢。