Я пытался отобразить некоторые точки как отдельные пиксели в моей проекции по шкале Моллвейда, когда понял, что точки автоматически соединяются линиями, сделанными из одного и того же вида маркера.(см. изображение ниже). Мое окончательное применение - построение звезд на небе, учитывая координаты 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')
вывод:

РЕДАКТИРОВАНИЕ: где я использовал plt.scatter()
чтобы показать возможный обходной путь (маркер должен быть персонализирован).
обратите внимание, что plt.plot(x,y,',')
ведет себя так, как нужно, когда проекция не используется, как показано на следующем графике:
эталонный график без проекции
(где я нарисовал красные круги дляпокажите маленькие голубые пиксели, которые plt.plot()
изображены по желанию).
Я хочу добиться этого с помощью plt.plot()
, поскольку это должно быть быстрее для задач такого типа: Функция печати будет быстреедля диаграмм рассеяния, где маркеры не различаются по размеру или цвету. сказано на странице документации рассеяния (здесь)
EDIT_2: Это неповторяется, так как установка linestyle='None'
, как предложено в предложенном вопросе, не решает проблему, как никогда.Вероятно, это связано с тем, что « линий » не являются реальными линиями, а маркерами, нанесенными между точками, действующими как виртуальные линии.