【问题标题】:using matplotlib colormap with pandas dataframe.plot function使用带有 pandas dataframe.plot 函数的 matplotlib 颜色图
【发布时间】:2017-05-22 02:53:09
【问题描述】:

我正在尝试将 matplotlib.colormap 对象与 pandas.plot 函数结合使用:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.cm as cm

df = pd.DataFrame({'days':[172, 200, 400, 600]})
cmap = cm.get_cmap('RdYlGn')
df['days'].plot(kind='barh', colormap=cmap)
plt.show()

我知道我应该以某种方式告诉颜色图它正在输入的值的范围,但我不知道在使用 pandas .p​​lot() 函数时如何做到这一点,因为这个 plot() 没有例如接受 vmin/vmax 参数。

【问题讨论】:

    标签: python pandas matplotlib colormap


    【解决方案1】:

    Pandas 为每一行应用一个颜色图,这意味着您可以为单列数据框获得相同的颜色。

    要对数据框的每一行应用不同的颜色,您必须从选定的颜色图中生成颜色列表:

    import pandas as pd
    import matplotlib.pyplot as plt
    import matplotlib.cm as cm
    import numpy as np
    
    df = pd.DataFrame({'days':[172, 200, 400, 600]})
    colors = cm.RdYlGn(np.linspace(0,1,len(df)))
    df['days'].plot(kind='barh', color=colors)
    plt.show()
    

    另一种方法是直接使用matplotlib。

    【讨论】:

    • 谢谢,帮了大忙!我最终使用了 colors = cm.RdYlGn(np.logspace(0,1,len(df))*df['days'].values/df['days'].max())
    猜你喜欢
    • 2017-11-11
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    • 2013-12-07
    • 2017-09-17
    • 2013-01-27
    • 1970-01-01
    相关资源
    最近更新 更多