Python Pycharm:当

时间:2018-01-13 08:27:31

标签: python matplotlib pycharm

使用Pycharm和Matplotlib,例如用:

import matplotlib.pyplot as plt
import numpy as np

my_random = np.random.random(5)
plt.plot(my_random)
plt.show()

很容易给出一个在SciView窗口中出现在Pycharm Professional Edition 2017.3(Ubuntu 14.04)中的图: default view

如果我放大到情节,它会非常粗糙,我再也无法分析细节了:

coarse in details

是否可以将此图作为矢量图,以便在放大时保持细节?

或者我可以在一个更“本地”(在更接近matplotlib的意义上,因为这个图看起来像Pycharm特定的方式)的方式绘图,所以缩放是以矢量化而不是位图的方式完成的?

2 个答案:

答案 0 :(得分:1)

而不是show(),请考虑使用支持缩放的savefig('plot.pdf')

编辑:我的意思是运行以下程序,它取代OP代码的最后一行。

#! /usr/bin/env python3.6

import matplotlib.pyplot as plt
import numpy as np

my_random = np.random.random(5)
plt.plot(my_random)
plt.savefig('plot.pdf')

在MacOS上运行它会产生超过半打的KiB输出,Preview.app很好地显示。这来自一个样本运行:

$ ./plot.py && wc -c plot.pdf && conda list --export | grep plot
    7187 plot.pdf
matplotlib=2.1.1=py36h2fb3e9e_0

答案 1 :(得分:0)

我对pycharm一无所知。

但你应该尝试增加数字的DPI(并避免依赖pyplot API的状态机):

from matplotlib import pyplot
fig = pyplot.figure(dpi=120)
ax = fig.add_subplot(1, 1, 1)
ax.plot([1, 2, 3], [3, 1, 2], 'ko')

从长远来看,明确创建figure将为您提供更多控制权。

请注意,图中的显示DPI不一定是将保存的分辨率:

fig.savefig('test.png', dpi=600, bbox_inches='tight')