matplotlib投影(mollweide,hammer ...),该图将点与(不需要的)线连接起来

时间:2018-11-23 16:37:51

标签: python matplotlib

当我意识到这些点通过由相同种类的标记制成的线自动连接时,我试图将这些点绘制为mollweide投影中的单个像素。 (见下图) 我的最终应用是在给定ICRS坐标的情况下在天空中绘制星星。

我找到了使用plt.scatter(请参见下面带有方形标记的符号)或healpy来避免此问题的方法,但是是否可以通过plt.plot 用线连接来绘制点? 这是一个简单的示例代码及其输出:

from matplotlib import pyplot as plt
import numpy as np
fig = plt.figure()
plt.subplot(111, projection="mollweide")
x = np.array([-np.radians(120), 0, np.radians(120)])
y = np.array([0, np.radians(30), 0])
plt.plot(x, y, ',')
plt.scatter(x, y, marker=',')
plt.grid(), plt.show()
fig.savefig('example.png')

输出:

mollweide projections of my points

编辑: 我使用plt.scatter()来显示可能的解决方法(然后必须对标记进行个性化设置)。

请注意,当不使用任何投影时,plt.plot(x,y,',')的行为如下图所示:
reference plot without projection
(在这里我绘制了红色圆圈,以显示plt.plot()根据需要绘制的小的蓝色绘制像素)。

我想用plt.plot()来实现它,因为它对于这种任务应该更快:对于散点图(标记大小或颜色不变)的散点图,绘图功能会更快。在分散文档(here)

上说

EDIT_2: 它不是重复的,因为按照建议的问题中的建议设置linestyle='None'并不能解决问题。这可能是因为那些“ 线”不是实线,而是绘制在充当虚拟线的点之间的标记。

0 个答案:

没有答案