使用python绘制3D图,并保存没有背景的png格式

使用python绘制3D图,并保存没有背景的png格式

import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(9,9))
ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.1)
Y = np.arange(-5, 5, 0.1)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X ** 2 + Y ** 2)
Z = np.sin(R)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.winter)
ax.grid(False)#默认True,风格线。
ax.set_xticks([])#不显示x坐标轴
ax.set_yticks([])#不显示y坐标轴
ax.set_zticks([])#不显示z坐标轴
plt.axis('off')#关闭所有坐标轴
plt.subplots_adjust(0, 0, 1, 1)
plt.savefig(f'没有背景.png', transparent=True, bbox_inches='tight', pad_inches=0.0)

使用plt.savefig()保存图像,其中参数transparent=True,这个设置会让坐标轴,以及图像补丁(也就是alpha为0的位置)都变为透明;bbox_inches和pad_inches的设置是为了保存图像时删除图像的白边。

效果如下:
在这里插入图片描述
简单曲面:

import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(9,9))
ax = fig.gca(projection='3d')

x1 = np.arange(0, 5, 0.1)
x2 = np.arange(5, -0.1, -0.1)
X = np.append(x1,x2)


y1 = np.arange(0, 5, 0.1)
y2 = np.arange(5, -0.1, -0.1)
Y = np.append(y1,y2)

X, Y = np.meshgrid(X, Y)

R = X ** 2 + Y ** 2
Z = R
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.winter)
ax.grid(False)#默认True,风格线。
ax.set_xticks([])#不显示x坐标轴
ax.set_yticks([])#不显示y坐标轴
ax.set_zticks([])#不显示z坐标轴
plt.axis('off')#关闭所有坐标轴
plt.subplots_adjust(0, 0, 1, 1)
plt.savefig(f'没有背景的.png', transparent=True, bbox_inches='tight', pad_inches=0.0)

在这里插入图片描述
凸面:

import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(9,9))
ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.1)
Y = np.arange(-5, 5, 0.1)
X, Y = np.meshgrid(X, Y)
# R = np.sqrt(X ** 2 + Y ** 2)
# Z = np.sin(R)

R = X ** 2 + Y ** 2
Z = 50 - R  # 让z等于R就是凹面
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.winter)
ax.grid(False)#默认True,风格线。
ax.set_xticks([])#不显示x坐标轴
ax.set_yticks([])#不显示y坐标轴
ax.set_zticks([])#不显示z坐标轴
plt.axis('off')#关闭所有坐标轴
plt.subplots_adjust(0, 0, 1, 1)
plt.savefig(f'没有背景的.png', transparent=True, bbox_inches='tight', pad_inches=0.0)

在这里插入图片描述
默认凹面画法:

import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(9,9))
ax = fig.gca(projection='3d')

x1 = np.arange(0, 5, 0.1)
x2 = np.arange(5, -0.1, -0.1)
X = np.append(x1,x2)


y1 = np.arange(0, 5, 0.1)
y2 = np.arange(5, -0.1, -0.1)
Y = np.append(y1,y2)

X, Y = np.meshgrid(X, Y)

R = X ** 2 + Y ** 2
Z = R
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.winter)
ax.grid(False)#默认True,风格线。
ax.set_xticks([])#不显示x坐标轴
ax.set_yticks([])#不显示y坐标轴
ax.set_zticks([])#不显示z坐标轴
# plt.axis('off')#关闭所有坐标轴
plt.subplots_adjust(0, 0, 1, 1)
plt.savefig(f'没有背景的.png', transparent=True, bbox_inches='tight', pad_inches=0.0)

在这里插入图片描述

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值