簡體   English   中英

Matplotlib:在指定的x軸范圍內繪制兩個圖形

[英]Matplotlib: Plotting two graphs within a specified x-axis range

基本上,我要根據繪制的第一個圖來鎖定圖的起點。

例如,如果我做這樣的事情。

import matplotlib.pyplot as plt
plt.plot([7,8,9,10], [1,4,9,16], 'yo')
plt.plot([1,9,11,12], [1,4,9,16], 'ro')
plt.show()

我想要一種將x軸限制為從7開始的方法,因此將刪除第二個繪圖中的(1,1)。

有沒有辦法做到這一點? 我自己可以跟蹤它,但是只是好奇是否有內置的東西可以處理這個問題。

謝謝。

Matplotlib為您提供兩種方法:

import matplotlib.pyplot as plt
plt.plot([7,8,9,10], [1,4,9,16], 'yo')
plt.plot([1,9,11,12], [1,4,9,16], 'ro')
plt.xlim(xmin=7)
plt.show()

或更面向對象的方式

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([7,8,9,10], [1,4,9,16], 'yo')
ax.plot([1,9,11,12], [1,4,9,16], 'ro')
ax.set_xlim(xmin=7)
plt.show()

如果您不使用IPython,則強烈建議您使用IPython,因為您可以創建axes對象,然后鍵入ax.<Tab>並查看所有選項。 在這種情況下,自動完成功能可能是一件很棒的事情。

簡而言之:plt.xlim()。

總而言之:

import matplotlib.pyplot as plt
x1, y1 = ([7,8,9,10], [1,4,9,16])
plt.plot(x1, y1, 'yo')
plt.xlim(min(x1), max(x1))
plt.plot([1,9,11,12], [1,4,9,16], 'ro')
plt.show()

您可以在第一個繪圖( doc )之后關閉自動縮放功能:

ax = plt.gca()
ax.autoscale(enable=False)

這將鎖定所有比例尺(您也可以分別進行x和y操作)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM