2013-08-31 42 views
6

我想只顯示在x軸在一個matplotlib產生情節相關部分設置的軸間隔範圍 - 利用pyplot包裝庫。如何使用Matplotlib或其他庫在python

問題:如何能積在某些軸位置被強制截止,通過使間隔-範圍的元組,定義區間x軸被繪製。理想情況下,截斷值應該用x軸上重疊的垂直雙波符號表示。

使用xlim and axis是沒有用的,因爲它僅允許開始和要設置的x軸的端部,但沒有間隔之間:

enter image description here 具體地,對於上面的情節,x軸不應顯示60 to 90之間的軸區域,並應添加截斷/不連續圖標記。

import matplotlib.pyplot as pyplot 
x1, x2 = 0, 50 
y1, y2 = 0, 100 
pyplot.xlim([x1, x2]) 
#alternatively 
pyplot.axis([x1, x2, y1, y2]) 

使用matplotlib是不是必需的。

更新/概述:

  • 尤指向this source,使用subplots -splitting和兩個地塊仿效matplotlib/pyplot一個折線圖。

enter image description here

+1

@SaulloCastro感謝您的指針。所以這個問題似乎在matplotlib中尚未解決呢?然而這個問題包含了指向其他漂亮的繪圖庫的指針。我忘了更新主題標題... –

+0

我在這裏找到了關於其他繪圖庫的小部分... [什麼是Python的最佳繪圖庫?](http://stackoverflow.com/questions/1120542/what -is-的條最佳繪圖庫換蟒蛇) –

回答

-1

如果使用matplotlib.pyplot.xticks你可以控制所有的標記的位置和價值。

This answer應該告訴你如何去做。

+0

謝謝,但具體而言,我不希望在60-90之間的x軸區域是表演。蜱蟲是不是最重要的... –

+0

@LoSauer如果你設置了蜱,使60-90不存在,並離開了對應的y軸數據(在你的情況下,0),這將是這個結果。請查閱Saullo發給你的鏈接。看起來這個問題已經在那裏得到解答。 –

+0

鏈接指向使用帶有兩個圖的'subplots' -table的解決方法。也許有一個更高的抽象包裝庫到Python中可用的matplotlib比pyplot? –

4

你必須在matplotlib例子破碎軸的例子:Broken Axis

在你的榜樣,次要情節也只是分享y軸代替x軸,並且限制將在X軸上進行設置。

實施例用棒圖:

fig, (ax1, ax2) = plt.subplots(1, 2, sharey=True) 
x = [1, 2, 3, 4, 5, 51, 52, 53, 54, 55] 
y = [4, 3, 4, 5, 4, 3, 4, 5, 6, 4] 
ax1.bar(x, y) 
ax2.bar(x, y) 

# Fix the axis 
ax1.spines['right'].set_visible(False) 
ax1.yaxis.tick_left() 
ax2.spines['left'].set_visible(False) 
ax2.yaxis.tick_right() 
ax2.tick_params(labelleft='off') 
ax1.set_xlim(1, 6) 
ax2.set_xlim(51, 56) 
+0

[僅鏈路的答案都不好(http://meta.stackexchange.com/a/8259/223330),作爲鏈接可能腐爛。 – hooy

+0

@nordev明白了。增加了一個例子。 –

相關問題