2017-06-20 45 views
2

我创建了一个2 y轴图,左轴有一个条形图,右轴有2个线图。我很难让图例同时具有条形图和折线图。我可以分开绘制传说,但我想将它们放在一起。这是我迄今为止所做的工作。蟒蛇中2 y轴的图例问题

import matplotlib.pyplot as plt; plt.rcdefaults() 
import numpy as np 
import matplotlib.pyplot as plt 
import pandas as pd 

df = pd.read_csv('data.csv') 
x = df["date"] 
y1 = df["line 1"] 
y2 = df["line 2"] 
z = df["bar 1"] 
y_pos = np.arange(len(x)) 

lns1 = plt.bar(y_pos,z) 
plt.ylabel('bar 1') 
plt.xlabel('date') 
plt.legend([lns1], ["bar 1"]) 
plt.twinx() 
lns2 = plt.plot(y_pos,y1,'r-',linewidth=2.5) 
lns3 = plt.plot(y_pos,y2,color='orange',linewidth=2.5) 
plt.ylabel('L-SLOC') 
plt.xticks(y_pos, x) 
plt.xlabel('date') 
plt.title('Title of graph') 

plt.legend(["line 1", "line 2"],loc="upper left") 


plt.draw() 
plt.show()` 

回答

1

而不是

plt.legend([lns1], ["bar 1"]) 

plt.legend(["line 1", "line 2"],loc="upper left") 

你可以试试这个:

plt.legend([lns1, lns2, lns3], ["bar 1", "line 1", "line 2"],loc="upper left") 
+0

不幸的是这只能说明条形图,不会在折线图添加。 –

+1

你能分享你的csv吗?我需要它来尝试你的代码 –

+0

我不知道如何上传数据,但在这里。 (日期,第1行,第2行,第1栏) (11/17/2015,12,60,0.22) (12/13/2015,19,34,0.153) (01/12/2016, 70,0.12) (2/7/2016,100,56,0.313) (5/30/2016,50,95,0.175) –