matplotlib实现三维柱状图
matplotlib实现三维柱状图
 import cv2
 img = cv2.imread("1.png", 0)
 #特征点在图片中的坐标位置
 m = 448
 n = 392
 import numpy as np
 import matplotlib.pyplot as plt
 # This import registers the 3D projection, but is otherwise unused.
 from mpl_toolkits.mplot3d import Axes3D  # noqa: F401 unused import
 # setup the figure and axes
 fig = plt.figure(figsize=(10, 5))  # 画布宽长比例
 ax1 = fig.add_subplot(121, projection='3d')
 ax2 = fig.add_subplot(122, projection='3d')
 ax1.set_title('Shaded')
 ax2.set_title("colored")
 # fake data
 _x = np.arange(444, 453)
 _y = np.arange(388, 397)
 _xx, _yy = np.meshgrid(_x, _y)
 x, y = _xx.ravel(), _yy.ravel()#ravel扁平化
 # 函数
 top = []
 for i in range(-4, 5):
     for j in range(-4, 5):
         top.append(img[i+n][j+m])
 bottom = np.zeros_like(top)#每个柱的起始位置
 width = depth = 1#x,y方向的宽厚
 ax1.bar3d(x, y, bottom, width, depth, top, shade=True)  #x,y为数组
 ax1.set_xlabel('X')
 ax1.set_ylabel('Y')
 ax1.set_zlabel('pixel value')
 for i in range(-4, 5):
     for j in range(-4, 5):
         z = img[i+n][j+m] #该柱的高
         color = np.array([255, 255, z])/255.0#颜色 其中每个元素在0~1之间
         ax2.bar3d(j+m, i+n, 0, width, depth, z, color=color)   #每次画一个柱
 ax2.set_xlabel('X')
 ax2.set_ylabel('Y')
 ax2.set_zlabel('pixel value')
 plt.show()
以上程序将特征点周围四个像素的像素点三维化,ax1用数组的方式画柱状图,同时绘制多个柱。ax2用数值的方式画柱状图,每次画一个柱。
结果:

matplotlib实现三维柱状图的更多相关文章
- Python学习(一) —— matplotlib绘制三维轨迹图
		在研究SLAM时常常需要对其输出的位姿进行复现以检测算法效果,在ubuntu系统中使用Python可以很好的完成相关的工作. 一. Ubuntu下Python的使用 在Ubuntu下使用Python有 ... 
- Python使用matplotlib绘制三维曲线
		本文主要演示如何使用matplotlib绘制三维图形 代码如下: # -*- coding: UTF-8 -*- import matplotlib as mpl from mpl_toolkits. ... 
- 机器学习-Matplotlib绘图(柱状图,曲线图,点图)
		matplotlib 作为机器学习三大剑客之一 ,比热按时无比强大的 matplotlib是绘图库,所以呢我就分享一下简单的绘图方式 #柱状图 #导报 柱状图 import matplotlib. ... 
- 使用matplotlib 制图(柱状图、箱型图)
		柱状图: import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv('D:\\myfiles\\study\\pyt ... 
- matplotlib绘制三维图
		本文参考官方文档:http://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html 起步 新建一个matplotlib.figure.Figure对象, ... 
- matplotlib表面三维图
		1.basic numpy.meshgrid 由一维数组到二维数组,用于生成网格数据 matplotlib python绘图库 2.code In [88]: from mpl_toolkits.mp ... 
- 用Matplotlib画三维图片的一个实例
		from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np from matp ... 
- matplotlib 中的柱状图
		def drawBar(): pyplot.bar(range(5),[100,200,300,400,400]) pyplot.xticks(range(5),['A','B','C','D','E ... 
- matplotlib 柱状图 Bar Chart 样例及参数
		def bar_chart_generator(): l = [1,2,3,4,5] h = [20, 14, 38, 27, 9] w = [0.1, 0.2, 0.3, 0 ... 
随机推荐
- Java的8种包装类:Wrapper Class
			Java有8种基本数据类型,为什么又要出现对应的8种包装类: 1.Java的8种基本数据类型不支持面向对象编程机制 2.8种基本数据类型不具备“对象”的特性:没有成员变量.方法可供调用 3.例如:某个 ... 
- AOP不起作用的原因之一
			在-servlet.xml配置context:component-scan后,Spring在扫描包时,会将所有带 @Service注解的类都扫描到容器中.而-servlet.xml和applicati ... 
- 2018.09.18 atcoder Best Representation(kmp)
			传送门 思路简单不知为何调试了很久. 显然要么分成n个(所有字符相同),要么分成1个(原字符串无循环节),要么分成两个(有长度至少为2的循环节). 一开始以为可以直接hash搞定. 后来wa了几次之后 ... 
- 2018.08.18 NOIP模拟 game(数位dp)
			Game 题目背景 SOURCE:NOIP2015-SHY4 题目描述 Alice 和 Bob 正在玩一个游戏,两个人从 1 轮流开始报数,如果遇到 7 的倍数或者遇到的这个数的十进制表示中含 7 , ... 
- spring AbstractRoutingDataSource实现动态数据源切换
			使用Spring 提供的 AbstractRoutingDataSource 实现 创建 AbstractRoutingDataSource 实现类,负责保存所有数据源与切换数据源策略:public ... 
- Android APK反编译步骤
			反编译步骤 1.通过Android Killer 打开apk,自动开始分析 2.分析结束后,在分析好的工程上右键->打开方式->打开文件位置 在文件夹ProjectSrc中有文 ... 
- 使用LVM对系统盘进行扩容
			不知道大家有没有碰到在安装CentOS时个,对系统每个挂载点分配多大容量比较合适的问题?如果挂载点容量分配大小,在某天不够用的时候怎么办:分配太大又存在浪费的情况.特别是在遇到系统盘特别小的时 ... 
- How Many Tables HDOJ
			How Many Tables Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ... 
- poj1836 Alignment
			Alignment Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 11707 Accepted: 3730 Descri ... 
- spring mvc静态资源请求和<mvc:annotation-driven>
			自己看了官方文档,也到网上查了下,目前理解如下: <mvc:annotation-driven/>相当于注册了DefaultAnnotationHandlerMapping和Annotat ... 
