2012-01-19 21 views
4

我需要將非數字數據與日期作爲簡單線圖進行繪製。我正在使用matplotlib。matplotlib如何開始打勾留下來自軸原點的空間

下面是一些示例代碼。

import matplotlib.pyplot as plt 

xticks=['Jan','Feb','Mar','April','May'] 
x=[1,2,3,4,5] 
yticks = ['Windy', 'Sunny', 'Rainy', 'Cloudy', 'Snowy'] 
y=[2,1,3,5,4] 

plt.plot(x,y,'bo') #.2,.1,.7,.8 
plt.subplots_adjust(left =0.2) 

plt.xticks(x,xticks) 
plt.yticks(y,yticks) 
plt.show() 

Graph generated from code

我要開始刻度標記離開從原點一些空間。所以他們看起來不太緊張。我應該爲此使用Fixedlocator嗎?此外,我希望圖表成爲一條顯示每個點的標記的線,如this示例。 我該如何做到這一點?

+1

如果你有興趣在廉價黑客,使用' plt.xticks(x,['\ n'+ s在xticks中的s])'作品 – wim

回答

6
  • 你可以「提升」的圖形通過設定較低ylim與ax.set_ylim
  • 標記點可以被添加到使用呼叫的marker = 'o' 參數設置的情節plt.plot

import matplotlib.pyplot as plt 
fig = plt.figure() 
ax = fig.add_subplot(1, 1, 1) 

xticks=['Jan','Feb','Mar','April','May'] 
x=[1,2,3,4,5] 
yticks = ['Windy', 'Sunny', 'Rainy', 'Cloudy', 'Snowy'] 
y=[2,1,3,5,4] 

plt.plot(x,y,'b-', marker = 'o') #.2,.1,.7,.8 
plt.subplots_adjust(left =0.2) 

plt.xticks(x,xticks) 
plt.yticks(y,yticks) 
ax.set_ylim(0.5,max(y)) 
plt.show() 

enter image description here

+0

謝謝你。效果很好。還添加了ax.set_xlim(0.5,max(x))爲x軸上的刻度留下一些空間。 – Angela