Ⅰ python Matplotlib画图
主要用于作图、可视化问题
pip install matplotlib
导入模块 pyplot 和 pylab ,可以参考下面链接观察两者区别:
https://www.cnblogs.com/Shoesy/p/6673947.html
(说白了就是pylay=pyplot+numpy)
输入这三行解决
主要使用 plot() 来展示,里面前两个参数代表 x , y 坐标(注意x,y数量要一样),第三个参数可以用来设置散点图( 'o' )或者颜色、线条形式等各种样式,并且第三个参数可以同时传入多个,比如要红色的散点图就: Ɔr'
(1)颜色样式:
(2)线条样式:
(3)点的样式:
(4)坐标区间:
或者分别设置x、y的区间:
注:
设置点的样式时默认就是散点图,以及同类样式只能设置一个(比如不能设置两种颜色),并且还可以把多个图集合在一起展示,那就多 plot 几个,plot就相当于一个画布,每plot一个就相当于在上面画一张图,再弄就继续在上面画
主要用 hist() 来显示,实现方式很简单,把一组数据放入括号里就行了,例如随机生成一堆正态分布的数,然后直方图显示:
其中如果要设置直方图格式(宽度、上下限、是否要轮廓)可以这样:
注:
直方图和折线图这些不太一样,折线图是传入两个等长数据,然后每个x、y坐标一一对应展示出来。而直方图是:第一个参数代表你传入的所有数据,第二个参数代表你传入的x轴范围,然后直方图会将第一个参数里传入的数据一个个计算在某个范围内含有的数据量,因此传入的两个参数数据不一定要等长,例如下面的例子:
结果如图:
可以看出数据被自动分配到对应的范围内上了
使用 subplot(row, col, area) :三个参数分别是行数、列数和区域,比如要将原图分成2行2列(切成4份),然后要左下角那个图就:
如果想4个图都显示就4个 subplot ,分别1、2、3、4就行了,然后在各图的subplot之后写的都是每个图的内容,现在我们试试弄一个2行,第一行两列的图片(想象下鼠标的样子),而且分别是不同的内容:
注:
labels 、 sizes 、 colors 和 explode 的长度都要一样
1.导入3D图相关模块:
2.将画图板加到3D模块里,然后加入数据即可:
3D散点图举例:
通过 imread() 读取,举例:
https://blog.csdn.net/qq_34859482/article/details/80617391
Ⅱ python 绘制三维图形、三维数据散点图
1. 绘制3D曲面图
from matplotlib import pyplot as plt
import numpy as np
from 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)
//绘面函数
ax.plot_surface(x,y,z,rstride=1,cstride=1,cmap=“rainbow”
plt.show()
2.绘制三维的散点图(表述一些数据点分布)
4a.mat数据地址:http blog.csdn.net/eddy_zhang/article/details/50496164
from matplotlib import pyplot as plt
import scipy.io as sio
from mpl_toolkits.mplot3d import Axes3D
matl=‘4a.mat’
data=sio.loadmat(matl)
m=data[‘data’]
x,y,z=m[0],m[1],m[2]
//创建一个绘图工程
ax=plt.subplot(111,project=‘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_zlable(‘z’)//坐标轴
ax.set_ylable(‘y’)//坐标轴
ax.set_xlable(‘x’)
plt.show()
Ⅲ Python实现彩色散点图绘制(利用色带对散点图进行颜色渲染)
接受自己的普通,然后全力以赴的出众,告诉自己要努力,但不要着急....
当然, 这个结果并不是我真正想要的,Pass, 太丑了!
好吧,安排,我们先看下实现后的效果!
这个效果自然就比之前的好多了!
实现python散点图绘制需要用到matplotlib库, matplotlib库是专门用于可视化绘图的工具库;学习一个新的库当然看官方文档了: https://www.osgeo.cn/matplotlib/contents.html
实现思路:
matplotlib.pyplot.scatter() 函数是专门绘制散点图的函数: https://www.osgeo.cn/matplotlib/api/_as_gen/matplotlib.pyplot.scatter.html?highlight=scatter#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里面自带了很多色带可供选择),参见:
https://www.osgeo.cn/matplotlib/gallery/color/colormap_reference.html
3、由于计算的散点密度数值大小分散,因此利用norm参数对散点密度Z1进行归一化处理(归一化方式很多,参见colors类),并给归一化方式设置色带刻度的最大最小值vmin和vmax(一般这两个参数就是指定散点密度的最小值和最大值),这样就建立起了密度与色带的映射关系。
https://matplotlib.org/tutorials/colors/colormapnorms.html
(这里的结果与前面展示的相比改变了计算散点密度的半径:radius = 3以及绘制散点图的散点大小marksize)
作者能力水平有限,欢迎各位批评指正!
Ⅳ 怎样用python画图,为什么代码写好运行时错误
python绘图(可视化)的模块非常多,下面我简单介绍几个不错的绘图库,感兴趣的朋友可以自己尝试一下,实验环境win7+python3.6+pycharm5.0,主要内容如下:
matplotlib
这是python中专门用于绘图的一个模块,功能强大,制图种类繁多,使用也最广泛,下面我简单介绍一下这个模块的安装和使用:
1.首先,安装matplotlib模块,这个直接在cmd窗口输入安装命令“pip install matplotlib”就行,如下:
2.安装完成后,我们就可以编写代码进行一下简单测试了,代码如下,一个稍微复杂的曲线图:
程序运行效果如下,看着还是非常不错的:
3.更多示例的话,可以参考一下官网教程,介绍的非常详细,柱状图、散点图、饼图等都有,非常适合初学者学习入门:
seaborn
这是一个基于matplotlib的绘图库,是matplotlib的高级封装,代码量更少,使用起来也更方便,下面我简单介绍一下这个模块的安装和使用:
1.首先,安装seaborn模块,这个也直接输入安装命令“pip install seaborn”就行,如下,很快就能安装完成:
2.安装完成后,我们就可以直接编写代码来测试一下这个模块了,代码如下,一个折线图集合:
程序运行截图如下,效果也非常不错:
3.更多示例的话,也直接参考官网教程就行,介绍的非常详细,很适合初学者入门学习:
pyecharts
这是echarts的一个python接口,借助于echarts强大的可视化功能,python也可以快速构建、绘制各种各样的图表,下面我简单介绍一下这个模块的安装和使用:
1.首先,安装pyecharts模块,这个也直接输入命令“pip install pyecharts”就行,如下:
2.安装完成后,我们就可以编写代码来进行下测试了,测试代码如下,一个简单的3D散点图:
程序运行截图如下(基于浏览器进行显示),效果还是非常不错的:
至此,我们就完成了利用python来进行绘图(可视化)。总的来说,这3个绘图模块使用起来都非常不错,对于大多数图表绘制来说,完全可以满足需求,当然,还有许多其他绘图模块,像ggplot等,也都非常不错,网上也有相关教程,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
python画图有很多扩展可以用,比如matplotlib、turtle、pychart等等,看你需要什么方面了,不同的需求需要用不同的工具。如果做界面还有pyqt、tkinter等等,做 游戏 还有pygame等等。
python报错需要查看报错信息,进行调试才能正常运行
Ⅳ python多维数据怎么绘制散点图
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()
效果展示:
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()24252627
效果:
上面就是学习区分了下两个函数,当时还被小困惑了下,希望对大家有所帮助。其实里面还有好多参数设置,比如说改变颜色,包括绘制点图的点的形状等都是可以改变的,有需要的大家可以自己看看这个函数,学习下(help(对应的function))。
版权声明:本文为博主原创文章,未经博主允许不得转载。Eddy_zheng
Ⅵ Python之神奇的绘图库matplotlib
matplotlib是Python最着名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。本文将以例子的形式分析matplot中支持的,分析中常用的几种图。其中包括填充图、散点图(scatter plots)、. 条形图(bar plots)、等高线图(contour plots)、 点阵图和3D图,下面来一起看看详细的介绍:
一、填充图
参考代码
简要分析
这里主要是用到了fill_between函数。这个函数很好理解,就是传入x轴的数组和需要填充的两个y轴数组;然后传入填充的范围,用where=来确定填充的区域;最后可以加上填充颜色啦,透明度之类修饰的参数。
相关推荐:《Python教程》
效果图
二、散点图(scatter plots)
参考代码
简要分析
1.首先介绍一下numpy 的normal函数,很明显,这是生成正态分布的函数。这个函数接受三个参数,分别表示正态分布的平均值,标准差,还有就是生成数组的长度。很好记。
2.然后是arctan2函数,这个函数接受两个参数,分别表示y数组和x数组,然后返回对应的arctan(y/x)的值,结果是弧度制。
3.接下来用到了绘制散点图的scatter方法,首先当然是传入x和y数组,接着s参数表示scale,即散点的大小;c参数表示color,我给他传的是根据角度划分的一个数组,对应的就是每一个点的颜色(虽然不知道是怎么对应的,不过好像是一个根据数组内其他元素进行的相对的转换,这里不重要了,反正相同的颜色赋一样的值就好了);最后是alpha参数,表示点的透明度。scatter函数的高级用法可以参见官方文档scatter函数或者help文档,最后设置下坐标范围就好了。
效果图
三、等高线图(contour plots)
参考代码
简要分析
1.首先要明确等高线图是一个三维立体图,所以我们要建立一个二元函数f,值由两个参数控制,(注意,这两个参数都应该是矩阵)。
2.然后我们需要用numpy的meshgrid函数生成一个三维网格,即,x轴由第一个参数指定,y轴由第二个参数指定。并返回两个增维后的矩阵,今后就用这两个矩阵来生成图像。
3.接着就用到coutourf函数了,所谓contourf,大概就是contour fill的意思吧,只填充,不描边;这个函数主要是接受三个参数,分别是之前生成的x、y矩阵和函数值;接着是一个整数,大概就是表示等高线的密度了,有默认值;然后就是透明度和配色问题了,cmap的配色方案这里不多研究。
4.随后就是contour函数了,很明显,这个函数是用来描线的。用法可以类似的推出来,不解释了,需要注意的是他返回一个对象,这个对象一般要保留下来个供后续的加工细化。
5.最后就是用clabel函数来在等高线图上表示高度了,传入之前的那个contour对象;然后是inline属性,这个表示是否清除数字下面的那条线,为了美观当然是清除了,而且默认的也是1;再就是指定线的宽度了。
效果图
Ⅶ 如何采用Python语言来化散点图
1、打开自己的winPython程序,如图所示;
Ⅷ Python如何运用matplotlib库绘制3D图形
3D图形在数据分析、数据建模、图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何在Python中使用 matplotlib进行3D图形的绘制,包括3D散点、3D表面、3D轮廓、3D直线(曲线)以及3D文字等的绘制。
准备工作:
python中绘制3D图形,依旧使用常用的绘图模块matplotlib,但需要安装mpl_toolkits工具包,安装方法如下:windows命令行进入到python安装目录下的Scripts文件夹下,执行: pip install --upgrade matplotlib即可;Linux环境下直接执行该命令。
安装好这个模块后,即可调用mpl_tookits下的mplot3d类进行3D图形的绘制。
下面以实例进行说明。
1、3D表面形状的绘制
这段代码是绘制一个3D的椭球表面,结果如下:
2、3D直线(曲线)的绘制
这段代码用于绘制一个螺旋状3D曲线,结果如下:
3、绘制3D轮廓
绘制结果如下:
相关推荐:《Python视频教程》
4、绘制3D直方图
绘制结果如下:
5、绘制3D网状线
绘制结果如下:
6、绘制3D三角面片图
绘制结果如下:
7、绘制3D散点图
绘制结果如下: