2017-06-20 57 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) –