设置matplotlib图的大小与3d子图

时间:2015-07-22 09:33:00

标签: python matplotlib

我有一个图,我想在2个子图中绘制三维散点图和正常图。 我用这个代码

<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>

然后我使用ax和ax2在正确的位置绘制我的数据。但是我得到的数字太小了,我怎么能把它做得更大呢?在第一行添加fig = plt.figure(1) ax = fig.add_subplot(211, projection='3d') ax2 = fig.add_subplot(212) 没有任何效果,如果我把它添加到第二行或第三行就会导致错误:

  

AttributeError:&#39; Axes3DSubplot&#39;对象没有属性&#39; set_figsize&#39;

1 个答案:

答案 0 :(得分:4)

figsize=(w,h)添加到第一行应该可以解决问题。 “你没有效果”是什么意思?

例如:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig1=plt.figure(figsize=(8,5))
ax11=fig1.add_subplot(211,projection='3d')
ax12=fig1.add_subplot(212)

fig1.get_size_inches()
# array([ 8.,  5.])

fig2=plt.figure(figsize=(4,4))
ax21=fig1.add_subplot(211,projection='3d')
ax22=fig1.add_subplot(212)

fig2.get_size_inches()
# array([ 4.,  4.])

fig1.savefig('fig1.png',dpi=300)
fig2.savefig('fig2.png',dpi=300)

将数据保存为300dpi时的png:

$ identify fig1.png
>>> fig1.png PNG 2400x1500 2400x1500+0+0 8-bit sRGB 118KB 0.000u 0:00.000

$ identify fig2.png
>>> fig2.png PNG 1200x1200 1200x1200+0+0 8-bit sRGB 86.9KB 0.000u 0:00.000