Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果数字低于0,则在条形图值上绘制不同的颜色_Python_Matplotlib - Fatal编程技术网

Python 如果数字低于0,则在条形图值上绘制不同的颜色

Python 如果数字低于0,则在条形图值上绘制不同的颜色,python,matplotlib,Python,Matplotlib,我需要一些绘制数据的帮助。有没有办法用不同的颜色绘制条形图。例如,我想有一个图例,显示一个绿色圆点和文本正,红色圆点和文本负。此外,如果图形值低于0,则添加红色。如果高于0,是否添加绿色?这可能吗?如能在正确的方向上给予帮助,我们将不胜感激 例如: 可能吗 请参见下面的我的代码: import matplotlib.pyplot as plt import pandas as pd import matplotlib import matplotlib.pypl

我需要一些绘制数据的帮助。有没有办法用不同的颜色绘制条形图。例如,我想有一个图例,显示一个绿色圆点和文本正,红色圆点和文本负。此外,如果图形值低于0,则添加红色。如果高于0,是否添加绿色?这可能吗?如能在正确的方向上给予帮助,我们将不胜感激

例如:

可能吗

请参见下面的我的代码:

    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_句柄,[“正”、“负”] 节目
这回答了你的问题吗?这正是我要找的!非常感谢。