【问题标题】:How do I customize the colours in the bars using custom number set in matplotlib?如何使用 matplotlib 中设置的自定义数字自定义条形中的颜色?
【发布时间】:2020-03-10 05:11:35
【问题描述】:

我正在尝试根据整数值向条形图添加颜色,假设值是 1 到 20,1 将是最亮的,20 将是​​最暗的,但没有一种颜色可以相同,所以到目前为止,我正在使用不正确的 colorbar 方法:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.DataFrame({'values': [17, 16, 16, 15, 15, 15, 14, 13, 13, 13]})
df.plot(kind='barh')
plt.imshow(df)
plt.colorbar()
plt.show()

但它给出了一个奇怪的结果:

【问题讨论】:

    标签: python pandas matplotlib plot colorbar


    【解决方案1】:

    我刚刚意识到使用plt.barhcolormaps 可以提供更好的绘图,使用:

    import pandas as pd
    import matplotlib.pyplot as plt
    
    df = pd.DataFrame({'values': [0, 0, 0, 0, 0, 17, 16, 16, 15, 15, 15, 14, 13, 13, 13]})
    df = df.sort_values(by='values').reset_index(drop=True)
    s = df['values'].replace(0, df.loc[df['values'] != 0, 'values'].min())
    s = s.sub(s.min())
    colors = (1 - (s / s.max())).astype(str).tolist()
    plt.barh(df.index, df['values'].values, color=colors)
    plt.show()
    

    这给出了:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-09
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      相关资源
      最近更新 更多