Matplotlib:如何在一个图上绘制多条线

时间:2020-09-04 10:30:04

标签: python matplotlib

我知道对此有很多疑问(例如here),我只是看不到自己在做什么错。

我有以下数据:

Prod T1 T2
A  0  4
B  0  6.7
C  0  8.8
D  0  6.8
E  0  6.75
F  0  7.8
G  0  33.5
H  0  21

我希望该图具有8条线(A-H),每条线显示从时间段1(T1)到时间段2(T2)的增长。

我写了这段代码:

# libraries
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

# Data
df=pd.DataFrame({'Product':['A','B','C', 'D','E','F','G','H'], 'Time Period 2': ['4','6.7','8.8','6.8','6.75','7.8','33.5','21.00']})

# multiple line plot
plt.plot('Product','Time Period 2',data=df,marker='o',color='orange',linewidth=2)
plt.legend(loc='upper left')

输出是x轴上的每个乘积(A-H)和Y轴上的T2编号:

但是我想要的是让每种产品都有自己的从T1到T2的增长线(例如,像互联网上的这个示例):

有人可以告诉我如何更改它,以便X轴只有两个值“时间1”和时间2”,然后有多行(AH),显示从T1到T2的增长(例如,对于A, T1 y的值为0,T2 y的值为4)。

2 个答案:

答案 0 :(得分:0)

我认为您只需添加.plots,它们就会被添加到同一张图上,例如,您可以执行以下操作:

# libraries
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

# Data
df=pd.DataFrame({'Product':['A','B','C', 'D','E','F','G','H'], 'Time Period 2': 
['4','6.7','8.8','6.8','6.75','7.8','33.5','21.00']})

df2=pd.DataFrame({'Product':['A','B','C', 'D','E','F','G','H'], 'Time Period 3': 
['12','13','14','15','16','17','18','19']})

# multiple line plot
plt.plot('Product','Time Period 2',data=df,marker='o',color='orange',linewidth=2)
plt.plot('Product','Time Period 3',data=df2,marker='o',color='orange',linewidth=2)
plt.legend(loc='upper left')

答案 1 :(得分:0)

我不知道这是否可以帮助您或者我是否理解这个问题,但是我做到了:

import matplotlib.pyplot as plt

x = ['A','B','C','D','E','F','G','H']
y = [0,0,0,0,0,0,0,0]
y2 = [4,6.7,8.8,6.8,6.75,7.8,33.5,21]

fig= plt.figure(figsize=(10,6))
plt.title("title")
plt.xlabel("xlabel")
plt.ylabel("ylabel")
plt.plot(x,y)
plt.plot(x,y2)
plt.show()

Here is the result I had :