Python Matplotlib实现三维/四维数据的柱状图绘制
2017-08-07 21:34
1136 查看
Python Matplotlib实现三维/四维数据的柱状图绘制
一、背景
最近查阅多维信息展示时,大致了解到三维信息可以用Matplotlib中的三维图像展示部分来实现,可是当涉及到三维以上的数据展示时,可采用雷达图来展示。雷达图可以展示多维信息。如下图所示:那么三维的柱形图,顶多可以展示X,Y,Z的信息,但是,在上一篇三维散点图的绘制的文章中提到其中的Color这个可以不仅仅局限于字符串,可以用变量来代替,因此颜色的冷到暖的色调变化过程是否可以做为一个新的维度的衡量标准呢?!
二、效果演示
根据这一想法,我做出来的实际效果图如下图所示:其中自然包含Xlabel,Ylabel和Amplitude这三种变量,同时可以根据第四维的数据来控制Color这个变量,用颜色的深浅来展示数据的变化。如果只是三维变量的话可以将Color用来展示Amplitude这个数值,如果数值越大色调越暖,任然有较好的效果。在matplotlib的官网中,我看到一种效果展示相当喜欢,后期如果有时间可以研究一下。
三、实现步骤
贴出代码,其中一些步骤给出了注释。参考代码是Matplotlib官网中的gallery里面的一个example,传送门
本文代码基于上面分析改进,如下:
import scipy.io as sio from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np def Detectionplot(): data = sio.loadmat('F:\detection.mat') #完成数据的导入 m = data['data'] #将其与m数组形成对应关系 fig = plt.figure() ax = fig.add_subplot(111, projection='3d') #此处因为是要和其他的图像一起展示,用的add_subplot,如果只是展示一幅图的话,可以用subplot即可 x = m[0] y = m[1] z = m[2] x = x.flatten('F') #flatten功能具体可从Declaration中看到 y = y.flatten('F') #更改柱形图的颜色,这里没有导入第四维信息,可以用z来表示了 C = [] for a in z: if a < 10: C.append('b') elif a < 20: C.append('c') elif a < 30: C.append('m') elif a < 40: C.append('pink') elif a > 39: C.append('r') #此处dx,dy,dz是决定在3D柱形图中的柱形的长宽高三个变量 dx = 0.6 * np.ones_like(x) dy = 0.2 * np.ones_like(y) dz = abs(z) * z.flatten() dz = dz.flatten() / abs(z) z = np.zeros_like(z) #设置三个维度的标签 ax.set_xlabel('Xlabel') ax.set_ylabel('Ylabel') ax.set_zlabel('Amplitude') ax.bar3d(x, y, z, dx, dy, dz, color=C, zsort='average') plt.show() Detectionplot()
August 7,2017
相关文章推荐
- Python Matplotlib实现三维数据的散点图绘制
- Python基于matplotlib实现绘制三维图形功能示例
- python matplotlib模块——绘制三维图形、三维数据散点图
- python matplotlib模块——绘制三维图形、三维数据散点图
- Python第三方库——Matplotlib_绘制数据的均值和方差图
- Python——使用matplotlib绘制柱状图
- matplotlib模块数据可视化-绘制柱状图
- python使用matplotlib绘制柱状图教程
- Python使用matplotlib绘制三维图形示例
- Python 3基础教程48-Matplotlib绘制散点图和柱状图
- python—matplotlib数据可视化实例注解系列-----之柱状图
- Python实现在tkinter中使用matplotlib绘制图形的方法示例
- python matplotlib从文件中读取数据绘制散点图
- python中Matplotlib实现绘制3D图的示例代码
- 在Linux下使用Python的matplotlib绘制数据图的教程
- Python进阶(三十八)-数据可视化の利用matplotlib 进行折线图,直方图和饼图的绘制
- Python使用matplotlib实现绘制自定义图形功能示例
- 【数据可视化】Daft:(Python)基于matplotlib绘制精美概率图模型
- python 数据可视化 matplotlib学习一:绘制简单的折线图
- python实现Kmeans文本聚类,通过PCA降维和Matplotlib显示聚类3d三维图像