2012-10-30 32 views
14

我想plot(x, sin(x))但不是一條直線從(xi,yi)(x_i+1,y_i+1)我想從(xi,0)(xi,yi)點之間因爲有時插一垂直線,以每個點是沒有意義的(如量化數據)(和它看起來好多了與垂直線比沒有)。matplotlib中的梗圖?

很像下面的stem plot(來自matlab文檔),但可以選擇關閉圓和點之間的「 - 」。 不幸的是,我自己在matplotlib文檔中找不到合適的繪圖函數。

stem plot

回答

16

有一個stem plot(又名棒棒糖圖)爲好。


下面你可以找到the docs一個例子(當然人們不會import *pylab在真正的代碼!)。

#!/usr/bin/env python 
from pylab import * 

x = linspace(0.1, 2*pi, 10) 
markerline, stemlines, baseline = stem(x, cos(x), '-.') 
setp(markerline, 'markerfacecolor', 'b') 
setp(baseline, 'color','r', 'linewidth', 2) 

show() 

stem plot


如果要調整基線的y位置,您可以使用bottom參數。 (該文檔的射門信息該位。)

(適於)實施例:

#!/usr/bin/env python 
from pylab import * 

x = linspace(0.1, 2*pi, 10) 
stem(x, cos(x), '-.', bottom=-2) 

show() 

stem plot 2

+0

謝謝,現在我需要弄清楚如何刪除藍色圓圈。 – arynaq

+1

@ user948652您只需要適當設置'markerfmt'參數,例如'markerfmt = '''。只需看看調用參數的文檔,在這裏很好的解釋。 – moooeeeep

+0

是否有一種方法可以在負無窮處啓動莖?我想要這樣的:https://namoseley.files.wordpress.com/2012/09/sin_poly_spectrum_small.png – endolith

0

我想你想在matplotlib使用線型= 'steps--'

plot(x, sin(x), linestyle='steps--') 
+0

這是一個水平臺階情節,並不做垂直線,如在.gif注意鏈接 – arynaq

+0

我的壞,我認爲@moooeeeep有它 – reptilicus