我這里有一個非常簡單的例子。我正在從函數返回的 ax 對象繪制一個圖:import matplotlib.pyplot as pltx = ['a', 'b', 'c']y = [1, 2, 3]def make_plot(): fig, ax = plt.subplots() ax.set_title('test bar chart') return axchart = make_plot()chart.bar(x, y)plt.show() #why does this show the chart?我的問題是最后關于 plt.show() 的問題。顯然,這顯示了圖表的輸出。但為什么?對我來說, plt.show() 似乎與任何東西都沒有聯系。我有我的chart對象,其中包含我的圖表及其所有參數等等。但是 plt.show() 如何知道與之交互呢?擁有類似的東西似乎更直觀chart.show(),就像chart類實例一樣。
1 回答

尚方寶劍之說
TA貢獻1788條經驗 獲得超4個贊
好問題!chart
是調用時創建的 Axes?plt.subplots()
。Pyplot 是所謂的“有狀態”API。當您調用 plt.* 函數時,它會更改 pyplot 的內部狀態,這可能會影響將來的調用。當您調用 時plt.subplots()
,它知道有一個新創建的Figure,其中包含新創建的子圖Axes。
同樣,如果您調用plt.plot()
,它會存儲最新軸的記錄,并在該圖上繪制數據。
添加回答
舉報
0/150
提交
取消