擅长:python、mysql、java
这太好了!谢谢你<a href="https://stackoverflow.com/users/4985733/martin-evans">Martin Evans</a>。
但是,对于那些希望在<code>Python3.x</code>中实现它的人来说,小的修复(因为<code>cStringIO</code>模块不可用;我宁愿使用<code>BytesIO</code>)</p>
<pre><code># -*- coding: utf-8 -*-
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
from io import BytesIO
# fig setup
fig = plt.figure(figsize=(5,5), dpi=300)
ax = fig.gca(projection='3d')
ax.set_xlim([-1,1])
ax.set_ylim([-1,1])
ax.set_zlim([-1,1])
ax.axes.xaxis.set_ticklabels([])
ax.axes.yaxis.set_ticklabels([])
ax.axes.zaxis.set_ticklabels([])
# draw a point
ax.scatter([0],[0],[0], color='b', s=200)
# save figure
# (1) save the image in memory in PNG format
png1 = BytesIO()
fig.savefig(png1, format='png')
# (2) load this image into PIL
png2 = Image.open(png1)
# (3) save as TIFF
png2.save('3dPlot.tiff')
png1.close()
</code></pre>