当前位置: 首页 > article >正文

Matplotlib中隐藏坐标轴但保留坐标轴标签的3D图

为了在Matplotlib的3D绘图中隐藏坐标轴但保留坐标轴标签,我们可以执行以下步骤:

设置图形大小并调整子图之间和周围的间距。
创建一个新的图形或激活一个现有的图形。
将“~.axes.Axes”添加到图形中,作为一个子图布置的一部分。
使用numpy创建x、y、z、dx、dy和dz数据点。
使用“bar3d()”方法绘制3D柱形图。
为了隐藏坐标轴,初始化一个颜色元组,与坐标轴颜色相同。
将x、y和z轴平面颜色属性设置为与颜色元组相同。
将x、y和z轴线颜色属性设置为与颜色元组相同。
将x、y和z轴的刻度设置为空。
设置x、y和z轴的标签。
使用“show()”方法显示图形。

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import plotly.express as px
import pandas as pd
import seaborn as sns
#%%
#Method 1: Use Color to Represent the Fourth Dimension
# Sample data
def V(x,y,z):#定义核函数
    #f=np.exp(x+y+z)
    #f=10*np.sin(x*np.pi)*np.exp(y*np.pi)*np.sin(z*np.pi)
    f=(2*np.pi)**(-1.5)*np.exp(-0.5*(x**2+y**2+z**2))
    return f
# 1.0 初始化数据
# f(x,y,z) = v
# 其中x,y,z为随机数,v=x*y*z
N=5
xc = np.linspace(-1, 1, N)
xx,yy,zz = np.meshgrid(xc,xc,xc)
x = xx.flatten()
y = yy.flatten()
z = zz.flatten()
v = V(x,y,z)

# Create a 3D scatter plot
fig = plt.figure(figsize=(8, 6))
ticks=[-1,0,1]
ax = fig.add_subplot(111, projection='3d')
ax.set_xticks(ticks)
ax.set_yticks(ticks)
ax.set_zticks(ticks)

ax.set_xlabel('x')
#ax.tick_params(axis='x', labelsize=14, length=0.1)
ax.tick_params(direction='out', length=16, width=0, colors='r',grid_color='r', grid_alpha=0,pad=0.9)
ax.set_frame_on(False)
ax.set_ylabel('y')
ax.set_zlabel('z')
scatter = ax.scatter(x, y, z, c=v, cmap='jet')#viridis
ax.view_init(35, 45)#将3D图形,通过旋转投影到2D曲面

# Add a colorbar
plt.colorbar(scatter)
ax.grid(False)
#ax.text(0.,-0.25, 'Text at (0.,-0.25)', fontsize=12)   # 添加文本注释

#ax.axis('off')
#ax.set_xticklabels(['-1','0','1'])
#ax.set_yticklabels(['-1','0','1'])
#ax.set_zticklabels(['-1','0','1'])
color_tuple = (1.0, 1.0, 1.0, 0.0)
color_tuple1 = (1.0, 1.0, 1.0, 0.0)

ax.w_xaxis.set_pane_color(color_tuple1)
ax.w_yaxis.set_pane_color(color_tuple1)
ax.w_zaxis.set_pane_color(color_tuple1)
ax.w_xaxis.line.set_color(color_tuple)
ax.w_yaxis.line.set_color(color_tuple)
ax.w_zaxis.line.set_color(color_tuple)

#https://www.tutorialspoint.com/how-to-hide-axes-but-keep-axis-labels-in-3d-plot-with-matplotlib

#ax.get_xaxis().set_visible(False)
#ax.get_yaxis().set_visible(True)
# Show plot
plt.show()
fig.savefig("show.png")

在这里插入图片描述


http://www.kler.cn/a/452212.html

相关文章:

  • 人工智能ACA(七)——计算机视觉基础
  • React引入Echart水球图
  • 基于WEB的房屋出租管理系统设计
  • SOTA简繁中文拼写检查工具:FASPell Chinese Spell Checker 论文
  • windows C#-使用集合初始值设定项初始化字典
  • 《Cocos Creator游戏实战》非固定摇杆实现原理
  • 面经zhenyq
  • 图像处理-Ch5-图像复原与重建
  • 前端取Content-Disposition中的filename字段与解码(vue)
  • 「Java EE开发指南」如何用MyEclipse构建一个Web项目?(一)
  • 【Select 语法全解密】.NET开源ORM框架 SqlSugar 系列
  • CPU架构的变化史
  • 用Python写炸金花游戏
  • CoinShares预测2025年加密市场前景看涨
  • 【k8s】在ingress-controlller中Admission Webhook 的作用
  • 批量识别工作表中二维码信息-Excel易用宝
  • 【UE5 C++课程系列笔记】11——FString、FName、FText的基本使用
  • C 语言基础运算:输入两个整数并计算和、差、积
  • Python:模拟(包含例题:饮料换购 图像模糊 螺旋矩阵)
  • CSS|15 CSS3圆角矩形透明度
  • Java反射学习(4)(“反射“机制获取成员方法及详细信息(Method类))
  • 用于航空发动机故障诊断的深度分层排序网络
  • [项目][boost搜索引擎#4] cpp-httplib使用 log.hpp 前端 测试及总结
  • 宠物行业的出路:在爱与陪伴中寻找增长新机遇
  • PDF在线预览实现:如何使用vue-pdf-embed实现前端PDF在线阅读
  • Jenkins 构建流水线