如何在 y 轴上绘制一列(名称)并在同一 y 轴上绘制另一列具有值
How to subplot one column (name) on y-axis and in the same y-axis another column with values
我想在一行三情节中进行子情节:
(标签:绿色 - 图 1:Y1xDay,图 2:Y2xDay,图 3:Y3xDay);
(标签:黄色 - 图 1:Y1xDay,图 2:Y2xDay,图 3: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 (?)
我卡在这里了。
谢谢你。干杯
我提出一个子图作为如何使用循环过程绘制图形的示例。
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()
我想在一行三情节中进行子情节:
(标签:绿色 - 图 1:Y1xDay,图 2:Y2xDay,图 3:Y3xDay);
(标签:黄色 - 图 1:Y1xDay,图 2:Y2xDay,图 3: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 (?)
我卡在这里了。 谢谢你。干杯
我提出一个子图作为如何使用循环过程绘制图形的示例。
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()