Как построить подграфик одного столбца (имени) по оси Y и на той же оси Y другой столбец со значениями - PullRequest
0 голосов
/ 19 июня 2020

Я хотел бы выделить в одну строку три участка:

(Метка: Зеленый - Участок1: Y1xDay, Участок2: Y2xDay, Участок3: Y3xDay);

(Ярлык: Желтый - Участок1: Y1xDay, Участок2: Y2xDay, Участок3: Y3xDay).

Эта строка должна быть связана со столбцом метки, а оси x и y каждого графика. c получают значения из других четырех столбцов.

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 (?)

Я здесь застрял. Спасибо. Ура

1 Ответ

0 голосов
/ 19 июня 2020

Я предлагаю подзаговор в качестве примера того, как нарисовать график с использованием процесса al oop.

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()

enter image description here

...