2014-07-23 151 views
1

對不起,提出這樣一個基本的問題,但經過幾個小時(和幾小時)的挫折,我轉向列表尋求一些專家的幫助。基本熊貓matplotlib繪圖

我有兩個熊貓數據框,df1df2df1有列A和B,而df2有C列和D列。我想用matplotlib來製作A對B的散點圖,帶有標記的軸和一個C的直方圖,同樣在x軸上標題。然後我想將這兩個數字保存在pdf文件中。

我能完成前者

import matplotlib.pyplot as plt 

plt.scatter(df1['A'],df1['B']) 
plt.xlabel('X title') 
plt.ylabel('Y title') 
plt.savefig('myfig1.pdf') 

但我不能讓直方圖工作,如果確實如此,它與散點圖和其直方圖都創建一個圖表。

任何幫助非常感謝。

+0

你使用'plt.hist(df3 [C'])'?直方圖創建的錯誤信息是什麼? – N1B4

+0

我得到一長串錯誤,以「KeyError:0」結尾 –

+0

df2 ['C']中的數據是什麼? – Gabriel

回答

1

這聽起來像你只需要再拍圖爲直方圖,

import matplotlib.pyplot as plt 

fig1 = plt.figure() 
plt.scatter(df1['A'],df1['B']) 
plt.xlabel('X title') 
plt.ylabel('Y title') 
plt.savefig('myfig1.pdf') 

fig2 = plt.figure() 
... <histogram code> 

或者說你沒有爲了做一切你可以分配軸變量,

import random 
x = [random.random() for i in range(50)] 
y = [random.random() for i in range(50)] 

fig1 = plt.figure() 
ax1 = fig1.add_subplot(111) 

fig2 = plt.figure() 
ax2 = fig2.add_subplot(111) 

ax1.scatter(x, y) 
ax1.set_xlabel('X title') 
ax1.set_ylabel('Y title') 
fig1.savefig('myfig1.pdf') 

ax2.hist(y) 

請注意,使用其方法設置軸的屬性時,大多數plt屬性將變爲set_X。例如,而不是plt.ylabel('my_y')你做ax1.set_ylabel('my_y')。您仍然可以使用plt方法,但它們將適用於當前情節。變量ax1ax2給你更多的自由,當你做事情。

+0

非常感謝加百列。我可以用scatterplot與無花果,斧頭方法一起工作。如果我使用'df2 ['C']。values'作爲參數,我可以使用直方圖來處理常規的plt.hist()方法。但是使用無花果,斧頭的直方圖似乎是一個問題,即使包含了「值」。 –

+0

鍵入df2 ['C']。值到ipython會話會給你什麼?它是什麼樣的數據? – Gabriel

+0

它給了我'數組([0.81132075,0.73684211,0.222222222,...,0.72727273,0.625,0.42857143])'。 –