Python plotting: Как я могу заставить matplotlib.pyplot останавливать стиль моего маркера?

Я пытаюсь построить кучу точек данных (много тысяч) в Python, используя matplotlib, поэтому мне нужно, чтобы каждый маркер был очень маленький и точный. Как я могу получить самый маленький самый простой маркер? Я использую эту команду для построения моих данных:

 matplotlib.pyplot( x , y ,'.',markersize=0.1,linewidth=None,markerfacecolor='black')

Затем я могу посмотреть на него либо с помощью pl.show(), а затем сохранить его. Или просто используйте plt.savefig('filename.ps') в коде для его сохранения. Проблема заключается в следующем: когда я использую pl.show() для просмотра файла в графическом интерфейсе, он отлично выглядит с маленькими черными метками, однако, когда я сохраняю его из show() GUI в файл или напрямую использую savefig, а затем просматриваю ps Я создал, он выглядит по-другому! Каждый маркер получил немного синего ореола вокруг него (как будто он начинал с каждой точки связывать их с голубыми линиями по умолчанию, но не делал этого), а стиль - все неправильно. Почему он меняет стиль при сохранении? Как остановить python от форматирования маркеров? И да, я посмотрел на некоторые альтернативные пакеты, такие как CairoPlot, но сейчас я хочу использовать matplotlib.

Обновление: Оказывается, что сохранение в PNG сначала приводит к тому, что цвета оказываются в порядке, но это вынуждает преобразовать изображение, когда я хочу снова его сохранить как .ps позже ( для включения в PDF), а затем я теряю качество. Как сохранить векторный характер файла и получить правильное форматирование?

Ответ 1

Для красивого векторизованного вывода не используйте стиль маркера '.'. Использовать, например. 'o' (круг) или 's' (квадрат) (см. help(plot) для параметров) и установите аргумент ключевого слова markersize на что-то подходящее маленькое, например:

plot(x, y, 'ko', markersize=2)
savefig('foo.ps')

То, что '.' (point) производит менее приятные результаты, может быть истолковано как ошибка в matplotlib, но тогда что означает "точка" в векторном графическом формате?

Ответ 2

Вы пробовали фигуру ','? Он создает " пиксели" (маленькие точки, а не фигуры).

Вы можете играть с опцией markersize, с этой формой?

Ответ 3

Если вы этого не сделали, попробуйте сохранить в растеризованном движке - сохраните его в PNG файле и посмотрите, исправляет ли он это. Если вам нужен векторный график, попробуйте сохранить в PDF и конвертировать с внешней утилитой. У меня также были проблемы с движком PS, которые были решены путем сохранения с помощью движков Agg или PDF и преобразования извне.