无法在pdf中绘制Python matplotlib图

时间:2018-08-23 19:35:37

标签: python matplotlib

我知道我的问题听起来很绝望,也不是一个简短的可重复示例。但是,我正在写论文,并尝试了打印测试。由于一个基于python的图(其他所有图都是在R中创建的),因此我无法打印用TeX编写并以pdf格式查看的文档。我将非常感激某人如何快速浏览它。我现在真的很绝望,因为我不想从工作中删除这张图片。当我使用R时,我对python并不是很熟悉,但是只是想为我的论文生成此图。

the Code

我指的是“套索坐标下降”部分中的图 改变参数l(lamda)以得到不同的结果”(字段[20])。

我正尝试将其保存如下:

    %matplotlib inline
fig = plt.figure(figsize = (16,8))

#Surface plot
ax = fig.add_subplot(1, 2, 1, projection='3d')
ax.plot_surface(T1, T2, Z, rstride = 5, cstride = 5, cmap = 'jet', alpha=0.5)
ax.plot(theta_0,theta_1,J_history_lasso, marker = '*', color = 'r', alpha = .4, label = 'Gradient descent')

ax.set_xlabel('theta 1')
ax.set_ylabel('theta 2')
ax.set_zlabel('error')
ax.set_title('RSS gradient descent: Root at {}'.format(theta_result_lasso.ravel()))
ax.view_init(25, -40)


#Contour plot
ax = fig.add_subplot(1, 2, 2)
ax.contour(T1, T2, Z, 100, cmap = 'jet')
ax.quiver(theta_0[:-1], theta_1[:-1], anglesx, anglesy, scale_units = 'xy', angles = 'xy', scale = 1, color = 'r', alpha = .9)



 ax.set_xlabel(r'$\beta_1$', fontsize=20, labelpad = 10)
 ax.set_ylabel(r'$\beta_2$', fontsize=20, labelpad = 10)
 ax.set_zlabel(r'$\mathcal{L}(\beta)$', fontsize=20, labelpad = 10)
 ax.tick_params(labelsize=16)
 ax.set_title(r'Globales Minimum $\hat \beta$ = [{:0.0f}, {:0.2f}]'.format(roundi[0],roundi[1]), fontsize=20, pad=40)

 plt.show()

 fig.savefig("l18.pdf", bbox_inches='tight')

但是我无法打印出有关pdf的信息。我还尝试了不同类型的打印机。因此,有关数字应该有问题。

2 个答案:

答案 0 :(得分:1)

尝试将其另存为.eps,然后使用eps2pdf转换器将其转换为pdf。或者仅在您的.eps论文中使用LaTeX个文件。 eps是向量图,具有非常好的分辨率。

答案 1 :(得分:0)

plt.show()显示图片,清除画布。您的PDF文件为空。这就是为什么您不能打印它的原因。删除savefig或将其移到itunes = win32com.client.dynamic.Dispatch("iTunes.Application") 之后。