Python绘图:如何让matplotlib.pyplot停止强制标记的样式?

Ale*_*lex 11 python coding-style matplotlib

我试图用matplotlib在Python中绘制一堆数据点(数千个),所以我需要每个标记都非常小而精确.如何获得最小的最简单的标记?我使用此命令绘制我的数据:

 matplotlib.pyplot( x , y ,'.',markersize=0.1,linewidth=None,markerfacecolor='black')
Run Code Online (Sandbox Code Playgroud)

然后我可以用它来查看它pl.show()然后保存它.或者直接plt.savefig('filename.ps')在代码中使用来保存它.问题是这样的:当我pl.show()用来查看GUI中的文件时,它看起来很小,带有小的黑色标记,但是当我从show()GUI 保存到文件或直接使用savefig然后查看ps我创建的它看起来不同!每个标记都在它周围获得了一点蓝色光环(好像它从每个点开始将它们与默认的蓝线连接起来,但没有)并且样式都是错误的.保存时为什么会改变风格?如何阻止python强制标记的样式?是的,我已经看过一些像CairoPlot这样的替代软件包,但我现在想继续使用matplotlib.

更新:原来,保存为PNG首先使颜色变成好的,但它迫使图像的转换,当我想再次将其保存为.ps更高版本(包含在PDF),然后我失去质量.如何保留文件的矢量性质并获得正确的格式?

Jou*_*nen 13

对于漂亮的矢量化输出,请勿使用'.'标记样式.使用例如'o'(circle)或's'(square)(参见help(plot)选项)并将markersize关键字参数设置为适当的小,例如:

plot(x, y, 'ko', markersize=2)
savefig('foo.ps')
Run Code Online (Sandbox Code Playgroud)

'.'(点)产生更少的不错结果可以解释为matplotlib中的错误,但随后,有什么应该 "点"的矢量图形格式是什么意思?


Eri*_*got 7

你试过','点形状吗?它创建" 像素 "(小点,而不是形状).

markersize这个形状你也可以玩这个选项吗?