【问题标题】:How to plot different column of a Pandas data frame with different marker, using pandas.plot() function?如何使用 pandas.plot() 函数绘制具有不同标记的 Pandas 数据框的不同列?
【发布时间】:2020-05-11 00:10:51
【问题描述】:

我有一个包含 5 个不同列的 pandas 数据框。 我想为每列绘制不同的颜色、标签和标记。 通过为每列传递颜色/标签列表,我设法为每列制作不同的颜色和不同的标签。但是,这不适用于标记。关于如何做的任何想法? 下面是代码示例:


ds # a pandas data frame with 3 columns

list_label=['A','B','C']
list_color=['tab:red','tab:green','tab:blue']
list_marker=['o','s','v']

ds.plot(color=list_color, label=list_label, marker=list_marker)

后面的行产生类似AttributeError: 'Line2D' object has no property 'list_marker'的错误

【问题讨论】:

    标签: python pandas matplotlib plot


    【解决方案1】:

    在同一个图形上分别绘制每个系列,以便您可以指定正确的标记。

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    df = pd.DataFrame(np.random.randint(1, 10, (10, 3)))
    list_label=['A', 'B', 'C']
    list_color=['tab:red', 'tab:green', 'tab:blue']
    list_marker=['o', 's', 'v']
    

    fig, ax = plt.subplots()
    
    for i, col in enumerate(df):
        df[col].plot(color=list_color[i], marker=list_marker[i], label=list_label[i], ax=ax)
    
    plt.legend()    
    plt.show()
    

    【讨论】:

    • 感谢您的建议!但我想知道是否有不使用循环的解决方案,因为它可以用于颜色或标签关键字。
    猜你喜欢
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多