plt绘制3D渐变填充柱状图

2023-11-02

 

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import matplotlib.colors
import numpy as np

def make_bar(ax, x0=0, y0=0, width = 0.5, height=1 , cmap="viridis",
              norm=matplotlib.colors.Normalize(vmin=0, vmax=1), **kwargs ):
    # Make data
    u = np.linspace(0, 2*np.pi, 4+1)+np.pi/4.
    v_ = np.linspace(np.pi/4., 3./4*np.pi, 100)
    v = np.linspace(0, np.pi, len(v_)+2 )
    v[0] = 0 ;  v[-1] = np.pi; v[1:-1] = v_
    x = np.outer(np.cos(u), np.sin(v))
    y = np.outer(np.sin(u), np.sin(v))
    z = np.outer(np.ones(np.size(u)), np.cos(v))

    xthr = np.sin(np.pi/4.)**2 ;  zthr = np.sin(np.pi/4.)
    x[x > xthr] = xthr; x[x < -xthr] = -xthr
    y[y > xthr] = xthr; y[y < -xthr] = -xthr
    z[z > zthr] = zthr  ; z[z < -zthr] = -zthr

    x *= 1./xthr*width; y *= 1./xthr*width
    z += zthr
    z *= height/(2.*zthr)
    #translate
    x += x0; y += y0
    #plot
    ax.plot_surface(x, y, z, cmap=cmap, norm=norm, **kwargs)

def make_bars(ax, x, y, height, width=1):
    widths = np.array(width)*np.ones_like(x)
    x = np.array(x).flatten()
    y = np.array(y).flatten()

    h = np.array(height).flatten()
    w = np.array(widths).flatten()
    norm = matplotlib.colors.Normalize(vmin=0, vmax=h.max())
    for i in range(len(x.flatten())):
        make_bar(ax, x0=x[i], y0=y[i], width = w[i] , height=h[i], norm=norm)

if __name__ == '__main__':
    fig = plt.figure()
    ax = fig.add_subplot(111, projection=Axes3D.name)

    X, Y = np.meshgrid([1,2,3,4], [2,3,4])
    Z = np.array([[90.34,99.9,89.3,87.4],
                  [60.9,80.3,90,78.3],
                  [89.3,87.0,94.4,89.3]])

    make_bars(ax, X, Y, Z, width=0.2)
    plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

plt绘制3D渐变填充柱状图 的相关文章

  • 使用四元数进行 OpenGL 旋转[重复]

    这个问题在这里已经有答案了 因此 我正在编写一个程序 其中对象以 spacesim 方式移动 以便学习如何在 3D 空间中平滑地移动对象 在对欧拉角进行了一番研究之后 它们似乎并不真正适合任意方向上的自由形式 3D 运动 因此我决定继续使用
  • 从绘图 3d 图中抓取相机位置

    我正在绘制 3D 图形并想要调整相机位置 对我来说最好的方法是使用查看器 根据需要缩放和旋转场景 然后以 JSON 形式获取相机位置并将其放入我的脚本中 该脚本生成图片以默认实现相同的位置 根据这条推文 https twitter com
  • 计算 3D(或 n 维)质心的最佳方法是什么?

    作为工作项目的一部分 我必须计算 3D 空间中一组点的质心 现在我正在以一种看似简单但天真的方式来做这件事 通过取每组点的平均值 如下所示 centroid average x average y average z where x y a
  • 如何在 JavaFX 中将 GUI 覆盖到 3D 场景上?

    我在 JavaFX 中有一个 3D 场景 需要在 3D 场景上覆盖 GUI 我尝试向场景添加按钮和文本 但它们始终作为 3D 对象出现在 3D 视图中 我环顾四周 没有找到该怎么做 唯一的解决方法是创建一个全新的窗口并将设置放在那里 但在这
  • CSS3“曲面”3D 变换/透视帮助

    我正在尝试为我的网站创建一种有观点的人群 它实际上是一个充满平面图像的 ul 我想创建一种 弯曲 的感觉 就像圆形的人群一样 它向内并且向内明显变小 并向末端弯曲 海报圈的例子是我能找到的最接近的http www webkit org bl
  • 给定 3D 空间中的一条线,如何找到从它到一点的角度?

    我在 3D 空间中有两组点 我想画一条穿过两组点的中心的线 然后找到从该线到每个点的角度 从那里开始 我将根据两个角度的接近程度来确定两组中的匹配点 我知道如何找到每组点的中心 只需将它们平均在一起 并且我知道如何将它们匹配 甚至考虑到它们
  • 如何在 Three.js 中从三角面获取多边形?

    我在网上查了一下是否有人遇到同样的问题 我正在使用 Three js 我有一个 3DObject 其中可能包含孔 面是三角形的 假设我想从上面看到它 我的目标是获得一个代表顶面周长的多边形 这对我来说意味着不再有三角面 而只有 1 个多边形
  • Direct3D 中的矩阵多阶

    关于在 Direct3D 中乘法矩阵以获得结果 我收到了两个相互矛盾的答案 教程确实规定从左到右相乘 这很好 但这不是我想象的方式 这是一个例子 OpenGL 从上到下阅读 GLRotatef 90 0f GLTranslatef 20 0
  • 从 NumPy 数组中的数据绘制 3D 图像

    我有一个 NumPy 数组中的数据文件 我想查看 3D 图像 我正在分享一个示例 我可以在其中查看大小为 100 100 的 2D 图像 这是 xy 平面上 z 0 处的切片 import numpy as np from matplotl
  • OpenGL Z 偏置(多边形偏移)限制

    我有两个共面的多边形 我尝试做 glEnable GL POLYGON OFFSET FILL glPolygonOffset 0 1 并期望其中一个明显 位于 另一个之上 这种情况直到大约 70 75 个单位之外 近剪裁平面为 1 远剪裁
  • 光线追踪三角形

    我正在用java编写一个光线追踪器 并且我能够追踪球体 但我相信我追踪三角形的方式有问题 据我了解 这是基本算法 首先确定射线是否与plane三角形已打开 剪裁所有点 使它们与三角形位于同一平面上 因此xy以平面为例 根据沿着新平面向任意方
  • 判断一个点是否在多面体内部

    我试图确定某个特定点是否位于多面体内部 在我当前的实现中 我正在研究的方法采用我们正在寻找多面体面的数组 在本例中为三角形 但稍后可能是其他多边形 的点 我一直在尝试根据这里找到的信息进行工作 http softsurfer com Arc
  • Unity3D:在 AA 解析后绘制粒子以提高性能

    我正在尝试评估 MSAA 对 Unity 中含有大量粒子的场景的影响 为此 我需要 使用 8x MSAA 绘制场景中的所有非粒子对象 使用上一个通道中解析的深度缓冲区来渲染所有 将非遮挡粒子系统转移到较小的渲染目标上 将 2 的颜色缓冲区与
  • 投影 3D 网格的 2D 轮廓算法

    给定 一个 3D 网格 由一组顶点和三角形定义 并用这些点构建网格 问题 找到任意平面上投影的任意旋转网格的二维轮廓 投影很容易 挑战在于找到平面中投影三角形边的 外壳 我需要一些有关研究该算法的输入 指针的帮助 为简单起见 我们可以假设
  • 将大块位图转换为 3 维位图

    Problem 我需要这个大量的数据作为输入 对于基于C的arduino 这是上面示例中所需格式的大量数据 const byte bitmap 8 8 0xFF 0x81 0x81 0x81 0x81 0x81 0x81 0xFF 0x81
  • 如何知道一个点是否在复杂的 3D 形状内(.ply 文件)

    我正在研究一个Java女巫项目真是要了我的命 经过几天在不同论坛上的研究 寻找我真正需要的东西 我来寻求你的帮助 我的数据 ply 文件 包含由许多三角形组成的 3D 形状 一个点 3D坐标 我想知道这个点是否包含在复杂的 3D 形状内 我
  • CSS3DObject 始终位于 WebGL Mesh 前面

    我正在混合CSS3D Renderer with WebGL Renderer to add HTML3D 空间中的元素WebGL场景 这CSS3DObject在前面WebGL网格即使WebGL Renderer具有较高的 z index
  • 在 RGL 中将立方体绘制到 3D 散点图中

    我正在尝试向 3D 散点图添加较小的立方体 网格 具有指定边长 我希望立方体位于原点 我该怎么做呢 我已经玩过cube3d 但我似乎无法将立方体正确定位 也无法使其成为网格 因此我可以看到它包含的数据点 这是我所拥有的 library rg
  • 将 3D 场景导入babylonJS

    所以我今天读到巴比伦JS http blogs msdn com b eternalcoding archive 2013 06 27 babylon js a complete javascript framework for build
  • 如何在不使用 Kinect SDK 函数的情况下将深度空间中的点转换为 Kinect 中的颜色空间?

    我正在做一个增强现实应用程序 将 3D 对象叠加在用户的彩色视频之上 使用 Kinect 1 7 版本 虚拟对象的渲染在 OpenGL 中完成 我已经成功地在深度视频上叠加了 3D 对象 只需使用 NuiSensor h 标头中深度相机的固

随机推荐

  • 渗透相关问题(二)

    1 报错注入原理是什么 由于后台没有对数据库的信息做过滤 会输出到前台显示 那么我们就可以利用制造报错函数 将查询语句带入到数据库中 以报错信息显示出来 一般是不以网页标签和xpath的路径格式来制造报错 2 常用哪些函数来制造报错 ext
  • git的详细使用

    文章目录 前言 一 Git工作流程 二 Git的安装 配置与使用 1 Git安装与配置 2 从本地仓库推送到远程仓库 2 从远程仓库拉取文件到本地 修改 新增并提交到 更新远程仓库 前言 参考网上文章 在这里总结一篇 方便自己查询 参考1
  • MySQL——root用户密码忘记,重置的操作

    1 通过任务管理器或者服务管理 关掉mysqld 服务进程 2 通过命令行 特殊参数开启 mysqld mysqld defaults file D ProgramFiles mysql MySQLServer5 7Data my ini
  • MIPI M-PHY - D-PHY- C-PHY

    MIPI M PHY MIPI M PHY是物理层 支持所有芯片到芯片的应用 以及高性能的摄像头和内存应用 M PHY可以在高速 HS 模式下运行 支持高达11 6Gb s的超高带宽 也可以在低功耗 LP 模式下运行 M PHY中支持的芯片
  • 启动hadoop,只有两个从节点没有DataNode的异常

    解决办法 在从节点的logs中查看日志如下 发现问题原因是主节点的VERSIONID和从节点不一样导致的 解决办法 1 有重要数据情况下 把主节点的VERSIONID复制到从节点中 2 没有重要数据情况下 把主节点的hdfs文件夹都删掉
  • 【打字母游戏_C语言实现】

    1 项目需求 2 项目分析 3 项目设计 3 1设计字母结构体 3 2屏幕大小 3 3 添加二维数组空格函数 LnitGrid GridArray ga 3 4 显示网格 ShowGrid GridArray ga struct Lette
  • 微信扫码登录功能实现

    原因 很简单 公司的账号登录需要用到微信扫码登录与QQ的登录功能 所以 在做好了微信的扫码登录之后 本人就写这篇微信扫码登录功能实现的教程 教程开始 需要用到的网站 https open weixin qq com 微信开放平台 https
  • 【软考】-高项-沟通管理-子过程ITTO记忆技巧

    沟通管理 贵关键 文章目录 沟通管理 贵关键 规划沟通管理 1 记忆口诀 2 记忆故事 3 输入 工具技术 输出选择理由 管理沟通 1 记忆口诀 2 记忆故事 3 输入 工具技术 输出选择理由 监督沟通 1 记忆口诀 2 记忆故事 3 输入
  • 打不开磁盘“E:\Virtual Machines\CentOS 7 64 位\CentOS 7 64 位-000003.vmdk”或它所依赖的某个快照磁盘。

    vmware下启动Centos虚拟机报错虚拟无法打开磁盘 打不开磁盘 E Virtual Machines CentOS 7 64 位 CentOS 7 64 位 000003 vmdk 或它所依赖的某个快照磁盘 或它所依赖的某个快照磁盘
  • 【Android动画渲染及混合模式】

    Android动画渲染及混合模式 public class GradientLayout extends View private Paint mPaint private Shader mShader private Bitmap mBi
  • CSMA/CD工作原理

    CSMA CD就是载波监听多点接入 碰撞检测 CSMA CD工作原理可以概括如下 1 先听后说 边听边说 2 一旦冲突 立即停说 3 等待时机 然后再说 在发送数据前 先监听总线是否空闲 若总线忙 则不发送 若总线空闲 则把准备好的数据发送
  • Java打印变量的参数类型

    具体方法如下 public static String getType Object o if ObjectUtils isEmpty o return 当前参数为空 else return o getClass toString 测试案例
  • 如何判断是字符型注入还是整形注入

    1 数字型注入 当输入的参数为整形时 如果存在注入漏洞 可以认为是数字型注入 测试步骤 1 加单引号 URL www text com text php id 3 对应的sql select from table where id 3 这时
  • UITabBarController使用

    文章目的 如何用纯代码的方式创建UITabBarController 方法 1 首先开启XCode并建立一个Empty Application 2 加入一个Objective C Class并继承自UIViewController 取名为F
  • 硬件模块化开发的例子:LD3320语音模块与Source Insight的使用

    目录 硬件模块化开发的行情 LD3320语音模块使用手册介绍 语音模块验货测试 硬件连接效果图 测试结果良好 Source Insight代码查看器 创建工程 修改字体 配色方案 中文乱码 关联代码 语音识别模块代码分析 语音识别模块二次开
  • day 33 css

    day 33 css 基本选择器 1 元素选择器 p color red 2 ID选择器 i1 background color red 3 类选择器 复制代码 c1 font size 14px p c1 color red 复制代码 注
  • uniCloud 云函数/云对象 node版本改变成12或18解决方案

    爆红信息 right hand side of instanceof is not an object 今天卡到一个本地跑好好的云对象部署云端直接报错了 原因是这样的 1 你去看看你云函数依赖那npm install的插件node版本是不是
  • kyocera client tool 安装_使用官方gdc-client软件下载TCGA数据

    要是有gdc client软件下载数据 需要以下三步才能完成 1 GDC筛选检索下载需要数据的Manifest文件 TCGA改版后 下载方式变得大为不同 数据都整合在GDC Genomic Data Commons 的DATA PORTAL
  • 牛客网试题+答案分析+大牛面试经验(3)

    1 串的长度是指 A 串中所含不同字母的个数 B 串中所含字符的个数 C 串中所含不同字符的个数 D 串中所含非空格字符的个数 答案 B 解析 串的长度定义为串中字符的数目 所以选项B为正确答案 选项C不正确 因为串中可以含有相同的字符 选
  • plt绘制3D渐变填充柱状图

    from mpl toolkits mplot3d import Axes3D import matplotlib pyplot as plt import matplotlib colors import numpy as np def