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 и преобразования извне.