默认情况下,matplotlib图可能会非常不准确地放置行。
例如,请参阅附加图中左端点的位置。至少有一整个像素的空气不应该存在。事实上,我认为线条中心偏离了2个像素。
如何让matplotlib准确地绘制 ?如果有一些性能受到影响,我不介意。
matplotlib图中不准确的渲染线:
matplotlib图中不准确的渲染线 - 放大细节:
这是使用Ubuntu 16.04(Python 3),Jupyter笔记本(类似于命令行的结果)中的默认安装。
答案 0 :(得分:2)
请考虑以下内容以了解正在进行的操作
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 4], clip_on=False, lw=5, alpha=.5)
ax.set_xlim([1, 3])
fig.savefig('so.png', dpi=400)
你也可以通过将snap=False
传递给plot
来禁用像素捕捉,但是一旦你开始放置〜单像素宽线,你就会遇到问题,因为基础光栅化过于粗糙。
答案 1 :(得分:1)
答案 2 :(得分:0)
我完全同意应对此进行处理。我发现plt.plot
通过用plt.figure
调用dpi=144
(默认值为72)来提供(至少或更少)未移位的行(在Jupyter中)。数字确实变大了两倍……