在Python 2.7中使用1.5.1。Matplotlib:爲什麼地塊總是封閉的形狀?
我正在創建一個圖形,向它添加一個軸對象,創建一個畫布,並將其放入一個窗口中。爲了繪製一個簡單的圖形,我在軸對象中設置了X和Y限制,然後用一個numpy的值範圍和一個相同長度的y值數組調用plot成員函數,以及一些格式化選項。
我得到的是我的數據的一個很好的圖形,但它被繪製爲閉合曲線,這意味着有一條對角線從我的圖形的末端返回到開始。
爲什麼要這樣做?當X值不是單調遞增時(比如繪製一個多邊形),我可以看到偶爾使用這種方法的選項,但它似乎不是一個合理的默認值。我沒有看到會影響此功能的軸屬性或任何繪圖參數。有誰知道如何讓它不像這樣環繞?
編輯:這裏是一些示例代碼。它假定PyGTK的作爲GUI環境:
import numpy
import gtk
import matplotlib
from matplotlib.figure import Figure
from matplotlib.backends.backend_gtk import FigureCanvasGTK as FigureCanvas
class junk:
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.connect('destroy', self.destroy)
self.window.set_title('junk')
self.window.resize(400, 400)
self.figure = Figure()
self.axes = self.figure.add_axes((0, 0, 1, 1))
self.canvas = FigureCanvas(self.figure)
self.canvas.show()
self.window.add(self.canvas)
self.axes.set_xlim(-10, 12)
self.axes.set_ylim(-1, 122)
x = numpy.arange(-9, 12)
self.axes.plot(x, x * x, linestyle = 'solid')
self.canvas.draw()
self.window.show_all()
def destroy(self, widget, data = None):
gtk.main_quit()
def main(self):
gtk.main()
if __name__ == '__main__':
app = junk()
app.main()
這將顯示偏心拋物線,其結果如下所示:
現在改變下Y邊界從-1到1 ,所以它的剪輯底部的小,結果是這樣的:
這表明我如果繪製圖形需要多條路徑,則每條路徑都有虛假環繞。
我在Windows上這樣做,但幾年前,我在運行Linux的Gumstix SOM上運行同樣的問題。
請提供一個顯示問題的示例程序。 –
這確實需要MWE - 我從未見過例如'plot([0,1,1],[0,0,1])'創建一個閉合曲線(在這種情況下,從'x,y = {1,1}'到'x,y = {0,0}' – Bart
我已經將此作爲編輯提供給原始文章 –