【问题标题】:How to subplot one column (name) on y-axis and in the same y-axis another column with values如何在 y 轴上绘制一列(名称)并在同一 y 轴上绘制另一列的值
【发布时间】:2020-10-09 05:09:34
【问题描述】:

我想在第三行情节中进行子情节:

(标签:绿色 - Plot1:Y1xDay,Plot2:Y2xDay,Plot3:Y3xDay);

(标签:黄色 - Plot1:Y1xDay,Plot2:Y2xDay,Plot3:Y3xDay)。

该行应与标签列相关,并且每个图形的 x 轴和 y 轴接收来自其他四列的值。

Label   Y1    Y2   Y3   Day
Green    2     6    5   1
Green    8     9    4   2
Green    1     3    9   3 
Green    2     1    9   4 
Green    7     7    1   5 
Green    5     4    8   6 
Yellow    1     6    4   1 
Yellow    2     8    5   2 
Yellow    4     6    5   3 
Yellow    2     2    9   4 
Yellow    4     3    1   5 
Yellow    10     1    4   6    

我试图创建一个与不同标签相关的 for。

plt.figure(figsize=(25,15))
label = np.unique(df['label']) 
n_label = len(label)          
n = 1
feats = ['k1', 'k2', 'k3']   
n_feats = len(feats)                  
for i in range(len(label)):        
    for j in range(n_label):        
        plt.subplot(n_label, n_feats, n)  
        g = plt.plot (?)

我被困在这里了。 谢谢你。干杯

【问题讨论】:

    标签: python pandas dataframe matplotlib subplot


    【解决方案1】:

    我提出一个子图作为如何使用循环过程绘制图形的示例。

    import matplotlib.pyplot as plt
    
    fig, axs = plt.subplots(2, 3, figsize=(9, 3))
    
    labels = list(df['Label'].unique())
    
    for i,l in enumerate(labels):
        x = df[df['Label'] == l]['Day']
        y1 = df[df['Label'] == l]['Y1']
        y2 = df[df['Label'] == l]['Y2']
        y3 = df[df['Label'] == l]['Y3']
    
        axs[i][0].bar(x, y1)
        axs[i][1].bar(x, y2)
        axs[i][2].bar(x, y3)
    
    plt.show()
    

    【讨论】:

    • 谢谢 r 初学者。我仍然尝试执行此代码。
    • 很高兴我也能帮助到你。请接受我的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多