【发布时间】:2017-07-28 09:55:15
【问题描述】:
我目前正在尝试使用以下代码在我的日志图上放置一条水平虚线。 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)")
我希望 ones 线在情节中同样虚线。我遇到了获取此graph here 的问题,其中行的间距不相等。
我正在寻找与this 非常相似的图表(是的,这是一个线性图表,我正在使用对数对数图表)
我尝试修改 dashes() 参数,但没有成功。
提前感谢您的指导。 :)
【问题讨论】:
-
“不平等的时尚”是什么意思?您的代码中的
abcdp和zero是什么? (注意:如果zero == 0,则不能将其绘制在对数图上)。另请注意,该论文图 1 中的底部图不是对数对数(左侧是线性线性,右侧是对数线性)。在一个简单的测试中,我能够毫无问题地在对数图上绘制水平虚线。如果您可以添加一个minimal reproducible example 以清楚地显示问题,那将是有帮助的。 -
由于参数
dashes=(1, 20),破折号实际上应该以1到20的恒定比率出现。要获得 1 比 1 的比率,请使用dashes=(1, 1)或直接忽略该参数。如果那不是您想要的,我建议您清楚地说明您得到什么,您期望什么以及您得到的不是您期望的。 (至少用3句话,最好用图片来解释) -
嘿,汤姆和 ImportanceOfBeingErnest,我确实尝试将绘图放置在这里,但昨天将图像加载到问题中时遇到问题。今天我会尝试重新加载它们。不幸的是,这并不能解决我的问题,我现在将重新阐述它:) 感谢您对如何改进沟通我的问题的建议,这是一个很大的帮助!
标签: python matplotlib plot loglog