重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
python matplotlib模块,是扩展的MATLAB的一个绘图工具库。他可以绘制各种图形,可是最近最的一个小程序,得到一些三维的数据点图,就学习了下python中的matplotlib模块,如何绘制三维图形。
创新互联专注于镇平企业网站建设,成都响应式网站建设公司,商城系统网站开发。镇平网站建设公司,为镇平等地区提供建站服务。全流程按需网站开发,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
初学者,可能对这些第三方库安装有一定的小问题,对于一些安装第三方库经验较少的朋友,建议使用 Anaconda ,集成了很多第三库,基本满足大家的需求,下载地址,对应选择python 2.7 或是 3.5 的就可以了(PS:后面的demo是python2.7):
首先提醒注意,以下两个函数的区别:
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow') #绘面1
和
ax.scatter(x[1000:4000],y[1000:4000],z[1000:4000],c='r') #绘点1
1、绘制3D曲面图
# -*- coding: utf-8 -*-"""
Created on Thu Sep 24 16:17:13 2015
@author: Eddy_zheng
"""from matplotlib import pyplot as pltimport numpy as npfrom mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)# 具体函数方法可用 help(function) 查看,如:help(ax.plot_surface)ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow')
plt.show()1234567891011121314151617181920212223
效果展示:
2、绘制三维的散点图(通常用于表述一些数据点分布)
4a.mat 数据地址,找到4a.mat 下载即可:
# -*- coding: utf-8 -*-"""
Created on Thu Sep 24 16:37:21 2015
@author: Eddy_zheng
"""import scipy.io as sio
from mpl_toolkits.mplot3d import Axes3Dimport matplotlib.pyplot as plt
mat1 = '4a.mat' #这是存放数据点的文件,需要它才可以画出来。上面有下载地址data = sio.loadmat(mat1)
m = data['data']
x,y,z = m[0],m[1],m[2]
ax=plt.subplot(111,projection='3d') #创建一个三维的绘图工程#将数据点分成三部分画,在颜色上有区分度ax.scatter(x[:1000],y[:1000],z[:1000],c='y') #绘制数据点ax.scatter(x[1000:4000],y[1000:4000],z[1000:4000],c='r')
ax.scatter(x[4000:],y[4000:],z[4000:],c='g')
ax.set_zlabel('Z') #坐标轴ax.set_ylabel('Y')
ax.set_xlabel('X')
plt.show()123456789101112131415161718192021222324252627
效果:
上面就是学习区分了下两个函数,当时还被小困惑了下,希望对大家有所帮助。其实里面还有好多参数设置,比如说改变颜色,包括绘制点图的点的形状等都是可以改变的,有需要的大家可以自己看看这个函数,学习下(help(对应的function))。
版权声明:本文为博主原创文章,未经博主允许不得转载。Eddy_zheng
接受自己的普通,然后全力以赴的出众,告诉自己要努力,但不要着急....
当然, 这个结果并不是我真正想要的,Pass, 太丑了!
好吧,安排,我们先看下实现后的效果!
这个效果自然就比之前的好多了!
实现python散点图绘制需要用到matplotlib库, matplotlib库是专门用于可视化绘图的工具库;学习一个新的库当然看官方文档了:
实现思路:
matplotlib.pyplot.scatter() 函数是专门绘制散点图的函数:
matplotlib.pyplot.scatter ( x, y , s=None , c=None , marker=None , cmap=None , norm=None , vmin=None , vmax=None , alpha=None , linewidths=None , verts=None , edgecolors=None , ***, data=None , ** kwargs ) **
plt.scatter(observation, estimate, c=Z1, cmap=colormap, marker=".", s=marker_size, norm=colors.LogNorm(vmin=Z1.min(), vmax=0.5 * Z1.max()))
其中:
1、c参数为计算的散点密度;
2、cmap为色带(matplotlib里面自带了很多色带可供选择),参见:
3、由于计算的散点密度数值大小分散,因此利用norm参数对散点密度Z1进行归一化处理(归一化方式很多,参见colors类),并给归一化方式设置色带刻度的最大最小值vmin和vmax(一般这两个参数就是指定散点密度的最小值和最大值),这样就建立起了密度与色带的映射关系。
(这里的结果与前面展示的相比改变了计算散点密度的半径:radius = 3以及绘制散点图的散点大小marksize)
作者能力水平有限,欢迎各位批评指正!
1,xlable,ylable设置x,y轴的标题文字。
2,title设置标题。
3,xlim,ylim设置x,y轴显示范围。
plt.show()显示绘图窗口,通常情况下,show()会阻碍程序运行,带-wthread等参数的环境下,窗口不会关闭。
plt.saveFig()保存图像。
面向对象绘图
1,当前图表和子图可以用gcf(),gca()获得。
subplot()绘制包含多个图表的子图。
configure subplots,可调节子图与图表边框距离。
可以通过修改配置文件更改对象属性。
图标显示中文
1,在程序中直接指定字体。
2, 在程序开始修改配置字典reParams.
3,修改配置文件。
Artist对象
1,图标的绘制领域。
2,如何在FigureCanvas对象上绘图。
3,如何使用Renderer在FigureCanvas对象上绘图。
FigureCanvas和Render处理底层图像操作,Artist处理高层结构。
分为简单对象和容器对象,简单的Aritist是标准的绘图元件,例如Line 2D,Rectangle,Text,AxesImage等,而容器类型包含许多简单的的 Aritist对象,使他们构成一个整体,例如Axis,Axes,Figure等。
直接创建Artist对象进项绘图操作步奏:
1,创建Figure对象(通过figure()函数,会进行许多初始化操作,不建议直接创建。)
2,为Figure对象创建一个或多个Axes对象。
3,调用Axes对象的方法创建各类简单的Artist对象。
Figure容器
如何找到指定的Artist对象。
1,可调用add_subplot()和add_axes()方法向图表添加子图。
2,可使用for循环添加栅格。
3,可通过transform修改坐标原点。
Axes容器
1,patch修改背景。
2,包含坐标轴,坐标网格,刻度标签,坐标轴标题等内容。
3,get_ticklabels(),,get-ticklines获得刻度标签和刻度线。
1,可对曲线进行插值。
2,fill_between()绘制交点。
3,坐标变换。
4,绘制阴影。
5,添加注释。
1,绘制直方图的函数是
2,箱线图(Boxplot)也称箱须图(Box-whisker Plot),是利用数据中的五个统计量:最小值、第一四分位
数、中位数、第三四分位数与最大值来描述数据的一种方法,它可以粗略地看出数据是否具有对称性以及分
布的分散程度等信息,特别可以用于对几个样本的比较。
3,饼图就是把一个圆盘按所需表达变量的观察数划分为若干份,每一份的角度(即面积)等价于每个观察
值的大小。
4,散点图
5,QQ图
低层绘图函数
类似于barplot(),dotchart()和plot()这样的函数采用低层的绘图函数来画线和点,来表达它们在页面上放置的位置以及其他各种特征。
在这一节中,我们会描述一些低层的绘图函数,用户也可以调用这些函数用于绘图。首先我们先讲一下R怎么描述一个页面;然后我们讲怎么在页面上添加点,线和文字;最后讲一下怎么修改一些基本的图形。
绘图区域与边界
R在绘图时,将显示区域划分为几个部分。绘制区域显示了根据数据描绘出来的图像,在此区域内R根据数据选择一个坐标系,通过显示出来的坐标轴可以看到R使用的坐标系。在绘制区域之外是边沿区,从底部开始按顺时针方向分别用数字1到4表示。文字和标签通常显示在边沿区域内,按照从内到外的行数先后显示。
添加对象
在绘制的图像上还可以继续添加若干对象,下面是几个有用的函数,以及对其功能的说明。
•points(x, y, ...),添加点
•lines(x, y, ...),添加线段
•text(x, y, labels, ...),添加文字
•abline(a, b, ...),添加直线y=a+bx
•abline(h=y, ...),添加水平线
•abline(v=x, ...),添加垂直线
•polygon(x, y, ...),添加一个闭合的多边形
•segments(x0, y0, x1, y1, ...),画线段
•arrows(x0, y0, x1, y1, ...),画箭头
•symbols(x, y, ...),添加各种符号
•legend(x, y, legend, ...),添加图列说明