使用Python';s matplotlib

使用Python';s matplotlib,python,matplotlib,plot,loglog,Python,Matplotlib,Plot,Loglog,我目前正试图用下面的代码在我的日志图中画一条水平虚线K2H_HUBp[:,1]和DivR是两个[1x6000]阵列。变量ones是一个[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,

我目前正试图用下面的代码在我的日志图中画一条水平虚线K2H_HUBp[:,1]DivR是两个[1x6000]阵列。变量ones是一个[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
-绘图或标准
绘图进行绘图。这是你想要的代码吗

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有一个名为hline的漂亮函数。此函数仅使用以下参数绘制水平线:

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到x 20的y=1线。这就给了我想要的结果


谢谢你的指导,我希望这对其他人有帮助

你所说的“不平等的时尚”是什么意思?您的代码中的
abcdp
zero
是什么?(注意:如果
zero==0
,则无法在日志图上绘制它)。还要注意的是,那篇文章图1中的底部图表不是对数图(左边是线性的,右边是对数线性的)。在一个简单的测试中,我能够在对数图上画出一条水平虚线,没有问题。如果您可以添加一个可以清楚显示问题的参数,这将非常有帮助。由于参数
dashes=(1,20)
,破折号实际上应该以1:20的恒定比率出现。要获得1:1的比率,请使用破折号=(1,1)
或不使用该参数。如果这不是你想要的,我建议你清楚地说明你得到了什么,你期望得到什么,以及在多大程度上你得到的不是你期望的。(至少用3个句子,最好用一张图片来解释)嘿,汤姆,重要的是,我确实试着把情节放在这里,但昨天在问题中加载图片时遇到了问题。我今天会尝试重新加载它们。不幸的是,这并不能解决我的问题,我现在将重新阐述:)谢谢你就如何改进沟通我的问题提出的建议,这是一个很大的帮助!嘿,不幸的是,这对我不起作用。仍然得到相同的行。您使用的是哪个matplotlib版本?我使用的是MPL2.0,我想他们对2.0中的线条和破折号做了很多更新。