簡體   English   中英

使用Python的matplotlib在對數-對數圖上繪制虛線

[英]Plotting a dashed line on a log-log plot using Python's matplotlib

我目前正在嘗試使用以下代碼在我的日志-對數圖中放置一條水平虛線。 K2H_HUBp [:,1]DivR是兩個[1x6000]數組。 變量1是一個充滿1的[1x6000]數組。

該圖的重點是顯示“土豆”的半徑與“紅薯”的半徑如何比較。 因此,如果它們相同,則所有數據點都應落在y = 1線上。

plt.scatter(K2H_HUBp[:,1],DivR,s=2.5,alpha=0.15,c = '#A9A9A9')
plt.loglog(K2H_HUBp[:,1], ones, '--',dashes=(1, 1),linewidth=0.9,c='#3C323C')
plt.ylim((0.1,10))
plt.xlim((0.35,12))
ax = plt.gca()
ax.tick_params(which = 'both', direction = 'in',right='on',top='on')
ax.set_xscale('log')
ax.set_yscale('log')
plt.ylabel("Radius (Potatos/Sweet Potatos)")
plt.xlabel("Radius (Potatos)")

我希望那條線在劇情中同樣虛線。 我有一個問題,就是要把這張圖放在這里 ,這些線條的間距不相等。

我正在尋找在圖形上非常相似, 一個(是的,這是一個線性圖,我用對數圖表工作)

我嘗試修改dashes()參數沒有任何運氣。

在此先感謝您的指導。 :)

您可以使用其他loglog -plot或標准plot 這段代碼是否為您提供了所要保護的東西?

import numpy as np
import matplotlib.pyplot as plt

fig, (ax1, ax2) = plt.subplots(2, 1)

x = np.linspace(0.01, 10, 100)
y = x**5

ax1.loglog(x, y, '.')
ax1.plot([x[0], x[-1]], [y[0], y[-1]], '--', label='with plot')
ax1.legend()

ax2.loglog(x, y, '.')
ax2.loglog([x[0], x[-1]], [y[0], y[-1]], '--', label='with loglog')
ax2.legend()

fig.show()
# plt.show()

在此處輸入圖片說明

因此事實證明,Pyplot具有一個稱為hlines的漂亮函數。 此函數僅使用以下參數繪制一條水平線:

matplotlib.pyplot.hlines(y, xmin, xmax, colors='k', linestyles='solid', label='', hold=None, data=None, **kwargs)

就我而言,我現在已經完全刪除了代碼:

plt.loglog(K2H_HUBp[:,1], ones, '--',dashes=(1, 1),linewidth=0.9,c='#3C323C')

並替換為:

plt.hlines(1, 0.001, 20, linestyles='dashed',linewidth=0.9,colors='#3C323C')

繪制從X 0.001 AY = 1行至x 20.然后,這使我我的期望結果是該曲線圖

感謝您的指導,希望以后對您有所幫助!

暫無
暫無

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

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