Linux命令行matplotlib绘图保存
- 格式:pdf
- 大小:166.78 KB
- 文档页数:1
利用python中的matplotlib模块绘制图表在数据可视化领域,Matplotlib是一个非常强大且广泛使用的Python库,它可以帮助我们轻松地创建各种类型的图表和可视化效果。
无论是简单的折线图、柱状图,还是复杂的散点图、饼图,Matplotlib都能胜任。
本文将介绍如何利用Matplotlib模块在Python中绘制各种类型的图表,让数据更加直观、易于理解。
1. 安装Matplotlib首先,我们需要安装Matplotlib库。
如果你使用的是Anaconda环境,可以直接在命令行中使用以下命令进行安装:示例代码star:编程语言:bashconda install matplotlib示例代码end如果你使用的是pip包管理器,可以使用以下命令进行安装:示例代码star:编程语言:bashpip install matplotlib示例代码end安装完成后,我们就可以开始在Python中使用Matplotlib库了。
2. 绘制折线图折线图是一种常用的数据可视化方式,可以展示数据随时间或其他变量的变化趋势。
下面是一个简单的例子,展示了如何使用Matplotlib绘制折线图:示例代码star:编程语言:pythonimport matplotlib.pyplot as plt# 数据x = [1, 2, 3, 4, 5]y = [10, 15, 13, 18, 16]# 创建折线图plt.plot(x, y)# 添加标题和标签plt.title('折线图示例')plt.xlabel('X轴')plt.ylabel('Y轴')# 显示图表plt.show()示例代码end通过以上代码,我们可以生成一个简单的折线图,并且可以自定义标题、坐标轴标签等内容。
3. 绘制柱状图柱状图常用于比较不同类别之间的数据大小或变化情况。
下面是一个绘制柱状图的示例代码:示例代码star:编程语言:pythonimport matplotlib.pyplot as plt# 数据x = ['A', 'B', 'C', 'D', 'E']y = [20, 35, 30, 25, 40]# 创建柱状图plt.bar(x, y)# 添加标题和标签plt.title('柱状图示例')plt.xlabel('类别')# 显示图表plt.show()示例代码end以上代码将生成一个简单的柱状图,展示了不同类别的数据大小。
python保存图⽚的四个常⽤⽅法⽬录前⾔1.PIL的保存图⽚⽅法2.opencv保存图⽚3.Matplotlib保存图⽚的⽅法4.pytorch保存图⽚matplotlib扩展:总结前⾔python中图像处理相关库有很多,这⾥简单介绍PIL、cv2、scipy.imageio 、matplotlib.image、skimage等常⽤库,其中PIL库使⽤最⽅便,cv2库功能最强⼤。
下⾯分享保存图⽚的常⽤⽅法1.PIL的保存图⽚⽅法path = r"./001.jpg" #图⽚路径img = Image.open(path) #打开图⽚img.save("1.jpg") #将图⽚保存为1.jpg2.opencv保存图⽚path = r"./001.jpg" #图⽚路径#img = cv.imdecode(np.fromfile("动漫⼈物_0.jpg",np.uint8))#含有中⽂路径的图⽚打开img = cv2.imread(path) #读取图⽚cv2.imwrite("1.jpg",img) #将图⽚保存为1.jpg3.Matplotlib保存图⽚的⽅法import matplotlib.pyplot as pltimport cv2import osimages_path = "./minist_img"for i,img_name in enumerate(os.listdir(images_path)):img_path = os.path.join(images_path,img_name)img = cv2.imread(img_path) #numpy的数组形式,⾊彩空间为BGRimg = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #plt.subplot(2,2,i+1),plt.imshow(img)plt.savefig("./minist.jpg")plt.show()4.pytorch保存图⽚save_image(real_img,os.path.join(save_img,f"{epoch}_real.jpg"),nrow=10,padding=2,pad_value=255)参数:1. tensor:4D张量,形状为(B x C x H x W),分别表⽰样本数,通道数,图像⾼度,图像宽度2. nrow:每⾏的图⽚数量,默认值为83. padding:相邻图像之间的间隔。
Python--matplotlib绘图可视化知识点整理参考∙matplotlib-绘制精美的图表∙matplotlib.pyplot.plt参数介绍∙matplotlib图标正常显示中文为了在图表中能够显示中文和负号等,需要下面一段设置:matplotlib inline和pylab inline可以使用ipython --pylab打开ipython命名窗口。
这两个命令都可以在绘图时,将图片内嵌在交互窗口,而不是弹出一个图片窗口,但是,有一个缺陷:除非将代码一次执行,否则,无法叠加绘图,因为在这两种模式下,是要有plt出现,图片会立马show出来,因此:推荐在ipython notebook时使用,这样就能很方便的一次编辑完代码,绘图。
为项目设置matplotlib参数在代码执行过程中,有两种方式更改参数:∙使用参数字典(rcParams)∙调用matplotlib.rc()命令通过传入关键字元祖,修改参数如果不想每次使用matplotlib时都在代码部分进行配置,可以修改matplotlib的文件参数。
可以用matplot.get_config()命令来找到当前用户的配置文件目录。
配置文件包括以下配置项:axex: 设置坐标轴边界和表面的颜色、坐标刻度值大小和网格的显示backend: 设置目标暑促TkAgg和GTKAggfigure: 控制dpi、边界颜色、图形大小、和子区( subplot)设置font: 字体集(font family)、字体大小和样式设置grid: 设置网格颜色和线性legend: 设置图例和其中的文本的显示line: 设置线条(颜色、线型、宽度等)和标记patch: 是填充2D空间的图形对象,如多边形和圆。
控制线宽、颜色和抗锯齿设置等。
savefig: 可以对保存的图形进行单独设置。
例如,设置渲染的文件的背。
matplotlib函数手册1. 引言Matplotlib是一个功能强大的数据可视化库,广泛应用于Python科学计算领域。
本文将详细介绍Matplotlib库中常用的函数,帮助读者更好地理解和使用Matplotlib绘图工具。
2. 基础绘图函数Matplotlib提供了丰富的基础绘图函数,可以用于绘制各种类型的图表。
以下是其中一些常用的函数:2.1 plot()plot()函数用于绘制折线图,在二维坐标系上连接各个数据点,形成一条折线。
使用该函数时,需要提供x轴和y轴的数据。
例如:import matplotlib.pyplot as pltx = [1, 2, 3, 4, 5]y = [2, 4, 6, 8, 10]plt.plot(x, y)plt.show()这段代码将绘制一条连接5个数据点的折线。
2.2 scatter()scatter()函数用于绘制散点图,将数据点在二维坐标系上显示出来。
使用该函数时,需要提供x轴和y轴的数据。
例如:import matplotlib.pyplot as pltx = [1, 2, 3, 4, 5]y = [2, 4, 6, 8, 10]plt.scatter(x, y)plt.show()这段代码将绘制5个散点。
2.3 bar()bar()函数用于绘制柱状图,显示不同类别或组之间的比较。
使用该函数时,需要提供每个柱子的高度和宽度。
例如:import matplotlib.pyplot as pltx = [1, 2, 3, 4, 5]y = [2, 4, 6, 8, 10]plt.bar(x, y)plt.show()这段代码将绘制5个柱子,每个柱子的高度分别为2、4、6、8、10。
2.4 pie()pie()函数用于绘制饼图,显示不同类别占总体的比例。
使用该函数时,需要提供每个类别的占比。
例如:import matplotlib.pyplot as pltlabels = ['A', 'B', 'C', 'D']sizes = [30, 40, 10, 20]plt.pie(sizes, labels=labels)plt.show()这段代码将绘制一个饼图,其中4个类别A、B、C、D分别占总体的30%、40%、10%、20%。
matplotlib用法Matplotlib 是一个 Python 的绘图库,广泛应用于数据可视化。
它可以用于创建各种类型的图表,包括线图、散点图、柱状图、饼图、直方图等。
Matplotlib的使用非常灵活,可以满足各种绘图需求。
1. 安装Matplotlib:在使用Matplotlib之前,需要先安装这个库。
可以通过以下命令在终端中安装最新版本的Matplotlib:```pip install matplotlib```2. 导入Matplotlib:在开始使用Matplotlib之前,需要先导入这个库。
一般将其导入为`plt`:```import matplotlib.pyplot as plt```3.创建图像:在Matplotlib中,图像作为一个整体存在,可以在图像上绘制不同种类的图表。
使用`plt.figure(`函数可以创建一个图像对象:```fig = plt.figure```4.创建子图:在图像上可以创建多个子图,用于绘制不同类型的图表。
使用`fig.add_subplot(`函数可以创建一个子图:```ax = fig.add_subplot(nrows, ncols, index)````nrows`表示子图的行数,`ncols`表示子图的列数,`index`表示子图的索引。
5.绘制线图:绘制线图可以使用`plt.plot(`函数。
可以传入x和y坐标的列表,也可以只传入一个参数(此时默认使用索引作为x坐标):```x=[1,2,3,4,5]y=[2,4,6,8,10]plt.plot(x, y)plt.show```6.绘制散点图:散点图可以使用`plt.scatter(`函数绘制。
通过传入x和y坐标的列表,可以将数据点绘制在图上:```x=[1,2,3,4,5]y=[2,4,6,8,10]plt.scatter(x, y)plt.show```7.绘制柱状图:柱状图可以使用`plt.bar(`函数绘制。
在Linux下使⽤Python的matplotlib绘制数据图的教程如果你想要在Linxu中获得⼀个⾼效、⾃动化、⾼质量的科学画图的解决⽅案,应该考虑尝试下matplotlib库。
Matplotlib是基于python的开源科学测绘包,基于python软件基⾦会许可证发布。
⼤量的⽂档和例⼦、集成了Python和Numpy科学计算包、以及⾃动化能⼒,是作为Linux环境中进⾏科学画图的可靠选择的⼏个原因。
这个教程将提供⼏个⽤matplotlib画图的例⼦。
特性⽀持众多的图表类型,如:bar,box,contour,histogram,scatter,line plots....基于python的语法集成Numpy科学计算包数据源可以是 python 的列表、键值对和数组可定制的图表格式(坐标轴缩放、标签位置及标签内容等)可定制⽂本(字体,⼤⼩,位置...)⽀持TeX格式(等式,符号,希腊字体...)与IPython相兼容(允许在 python shell 中与图表交互)⾃动化(使⽤ Python 循环创建图表)⽤Python 的循环迭代⽣成图⽚保存所绘图⽚格式为图⽚⽂件,如:png,pdf,ps,eps,svg等基于Python语法的matplotlib是其许多特性和⾼效⼯作流的基础。
世⾯上有许多⽤于绘制⾼质量图的科学绘图包,但是这些包允许你直接在你的Python代码中去使⽤吗?除此以外,这些包允许你创建可以保存为图⽚⽂件的图⽚吗?Matplotlib允许你完成所有的这些任务。
从⽽你可以节省时间,使⽤它你能够花更少的时间创建更多的图⽚。
安装安装Python和Numpy包是使⽤Matplotlib的前提。
可以通过如下命令在Debian或Ubuntu中安装Matplotlib:$ sudo apt-get install python-matplotlib在Fedora或CentOS/RHEL环境则可⽤如下命令:$ sudo yum install python-matplotlibMatplotlib 例⼦本教程会提供⼏个绘图例⼦演⽰如何使⽤matplotlib:离散图和线性图柱状图饼状图在这些例⼦中我们将⽤Python脚本来执⾏Mapplotlib命令。
gnuplot绘制图像并保存目录一、基础篇 (2)1、plot命令 (2)2、同时画多条曲线 (2)3、关于图例的位置 (3)4、关于坐标轴 (3)5、在图中插入文字 (3)6、在图中添加直线和箭头 (3)7、图的大小和位置 (4)8、画三维图 (4)9.将图形输出到文件 (4)二、提高篇 (5)1、如何在同一张图里同时画多个图 (5)2、作二维图时,如何使两边坐标轴的单位长度等长 (5)3、如何在同一张图里利用左右两边的y轴分别画图 (5)4、如何插入希腊字母和特殊符号 (6)5、gnuplot中如何插入Angstrom(埃)这个符号(A上面一个小圆圈) (6)6、gnuplot画等高线图 (6)7、如何画漂亮的pm3d图 (7)8、利用脚本文件避免重复输入 (7)9、在gnuplot模式下运行linux命令 (8)对于在Linux下工作的人,如果你经常要画一些二维图和简单的三维图的话,那么,gnuplot 无疑是一个非常好的选择,不仅图形漂亮,而且操作简单。
当然如果需要质量更高的三维图,请用其他的一些专业绘图软件。
建议大家学会使用gnuplot。
这个小软件通常都是Redhat Linux自带的,但自带的版本是3.7的,建议将其升级到4.0,新版本具有很多新功能。
最新版本可以到/下载。
一些最基本的操作请大家看说明书。
这里总结一下我在使用过程中遇到的一些问题以及解决的办法,目的是让那些以前不会的或不熟练的能快速入门,会画自己想要的图,因为原来的说明书很长,较难有针对性地很快找到自己想要的信息。
这里简单的总结不可能面面俱到,所以大家不要抱怨我写的不全,更全面的了解还是请看说明书,网上的资料也多的是。
其实这也是我们从网上一点一点搜集和摸索出来的。
我相信看完后,应该平时最常见的问题基本上都能在这里找到答案。
如果大家在使用过程中摸索到了我没有写到的技巧和体会,或有其它建议,请大家提告诉我,以不断完善这篇总结,谢谢!一、基础篇在linux命令提示符下运行gnuplot命令启动,输入quit或q或exit退出。
pythonmatplotlib基本用法savePython是一种强大的编程语言,而Matplotlib是一个用于创建数据可视化图形的库。
通过使用Matplotlib,我们可以将数据以各种形式(如线图、柱状图、散点图等)呈现出来,这对于数据分析和数据可视化的工作来说是非常有用的。
在本文中,我们将介绍Matplotlib的基本用法,特别是如何使用Matplotlib保存图形。
一、Matplotlib简介Matplotlib是一个用于创建静态、动态、交互式和动画图形的库。
它支持多种图形类型,包括线图、柱状图、散点图、饼图等。
Matplotlib的主要优点是其灵活性和可扩展性,允许用户自定义图形的各种属性,如颜色、字体、轴标签等。
二、安装Matplotlib要使用Matplotlib,您需要先安装它。
您可以使用pip命令在终端或命令提示符中安装Matplotlib:```shellpipinstallmatplotlib```一旦您安装了Matplotlib,您就可以开始使用它来保存图形。
以下是一些基本用法示例:1.保存为PNG图像:```pythonimportmatplotlib.pyplotasplt#创建一个简单的线图x=[1,2,3,4,5]y=[2,3,5,7,11]plt.plot(x,y)#保存为PNG图像plt.savefig('example.png')```这将创建一个包含两条线的简单图形,并将其保存为名为“example.png”的PNG图像文件。
2.使用其他文件格式:除了PNG,Matplotlib还支持其他文件格式,如PDF、SVG和JPG等。
您可以使用savefig()方法并指定文件格式来保存图形为其他格式:```python#保存为PDF文件plt.savefig('example.pdf',format='pdf')```3.使用子图:如果您需要将多个图形放在同一幅图中,可以使用subplot()方法。
官方示范:可以在这里查询图列和代码 : /gallery.html# Python图表绘制:matplotlib绘图库入门matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。
而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。
它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源程序。
因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定。
在Linux下比较著名的数据图工具还有gnuplot,这个是免费的,Python有一个包可以调用gnuplot,但是语法比较不习惯,而且画图质量不高。
而Matplotlib则比较强:Matlab的语法、python语言、latex的画图质量(还可以使用内嵌的latex引擎绘制的数学公式)。
Matplotlib.pyplot快速绘图快速绘图和面向对象方式绘图matplotlib实际上是一套面向对象的绘图库,它所绘制的图表中的每个绘图元素,例如线条Line2D、文字Text、刻度等在内存中都有一个对象与之对应。
为了方便快速绘图matplotlib通过pyplot模块提供了一套和MATLAB类似的绘图API,将众多绘图对象所构成的复杂结构隐藏在这套API内部。
我们只需要调用pyplot模块所提供的函数就可以实现快速绘图以及设置图表的各种细节。
pyplot模块虽然用法简单,但不适合在较大的应用程序中使用。
为了将面向对象的绘图库包装成只使用函数的调用接口,pyplot模块的内部保存了当前图表以及当前子图等信息。
当前的图表和子图可以使用plt.gcf()和plt.gca()获得,分别表示"Get Current Figure"和"Get Current Axes"。
在pyplot模块中,许多函数都是对当前的Figure 或Axes对象进行处理,比如说:plt.plot()实际上会通过plt.gca()获得当前的Axes对象ax,然后再调用ax.plot()方法实现真正的绘图。
PythonMatplotlib绘图,参数操作准备⼯作我们需要先安装matplotlib库,然后导⼊库,这些很简单,我就不讲了,哦,把numpy也导⼊进来。
import matplotlib.pyplot as pltimport numpy as np正式开始plt.和ax.我们经常会在画图的代码⾥看到,有⽤plt.的,有⽤ax.的,两者到底有什么区别呢,画的图有什么不⼀样吗,我们先来⽤两种经常看到的⽅式实现⼀下。
plt.fig=plt.figure(num=1,figsize=(4,4))plt.plot([1,2,3,4],[1,2,3,4])plt.show()ax.fig=plt.figure(num=1,figsize=(4,4))ax=fig.add_subplot(111)ax.plot([1,2,3,4],[1,2,3,4])plt.show()我们看到上⾯两种画图⽅式可视化结果并⽆不同,那区别在哪呢?其实呢,第⼀种⽅式呢,是先⽣成了⼀个画布,然后在这个画布上隐式的⽣成⼀个画图区域来进⾏画图,第⼆种⽅式,先⽣成⼀个画布,然后,我们在此画布上,选定⼀个⼦区域画了⼀个⼦图,上⼀张官⽅的图,看看你能不能更好的理解除了ax之外,我们也可以直接⽤plt添加⼦图,⽅式如下fig=plt.figure(num=1,figsize=(4,4))plt.subplot(111)plt.plot([1,2,3,4],[1,2,3,4])plt.show()你看,这样添加⼦图,也是⼀样的,fig,⽣成⼀个画布,plt.subplot(111),将画布分为1x1的分布,并选中第⼀个⼦图进⾏操作。
虽然这样看着⼀样呢,但是后⾯修饰图⽚的时候,ax这个⽅式⽐plt的⽅式更加⽅便。
因此,本⽂我们⽤ax⽅式来学习画图,也希望⼤家都提前选定⼀种⾃⼰喜欢的⽅式来画图,添加⼦图,等⼀些列操作。
⼦图的创建在上⼀节的介绍中,讲到了⼦图,可能刚接触画图的同学,会有点疑惑,这节,我们来详细讲讲⼦图。
matplotlib绘图的基本操作plt.plot(x,y , fmt) :绘制坐标图plt.boxplot(data, notch, position): 绘制箱形图plt.bar(left, height, width, bottom) : 绘制条形图plt.barh(width, bottom, left, height) : 绘制横向条形图plt.polar(theta, r) : 绘制极坐标图plt.pie(data, explode) : 绘制饼图plt.scatter(x, y) :绘制散点图plt.hist(x, bings, normed) : 绘制直⽅图绘制图表的⼀些基本操作:tips:如果你向plot()指令提供了⼀维的数组或列表,那么matplotlib将默认它是⼀系列的y值,并⾃动为你⽣成x的值,默认的x向量从0开始并且具有和y同样的长度。
"""matplotlib绘图的基本操作"""import matplotlib.pyplot as pltimport numpy as np# 绘制普通图像x = np.linspace(-2*np.pi, 2*np.pi, 1000)y1 = np.sin(x)y2 = np.cos(x)y3 = np.cos(2*x)# 创建figure对象,⽣成画板 # 参数依次是图名,⼤⼩,dpi,背景⾊,边缘⾊plt.figure(num='正余弦函数图', figsize=(10, 6), dpi=120, facecolor='y', edgecolor='g')# 在绘制时设置lable, 逗号是必须的l1 = plt.plot(x, y1, color='red', linestyle='-', linewidth=0.5, label='$sin(x)$')l2 = plt.plot(x, y2, 'b', label='$cos(x)$')# plt.plot(x, y1, 'r--', x, y2, 'b-.', x, y3, 'g') 叠加图在⼀个图画出多条不同格式的线# 设置坐标轴的取值范围plt.axis((-6.5, 6.5, -1.1, 1.1))# plt.xlim((-6.5, 6.5))# plt.ylim((-1.1, 1.1))# 设置坐标轴的lableplt.xlabel('X axis')plt.ylabel('Y axis')# 设置x坐标轴刻度, 原来为0.25, 修改后为0.5 # plt.xticks(np.linspace(-2*np.pi, 2*np.pi, 9))# 第⼀个参数是位置,第⼆个参数是标签lable,$使字体倾斜,\ 输出空格,\alpha_i输出数学符号α1也可直接alphaplt.xticks((-2*np.pi, -3*np.pi/2, -np.pi, -np.pi/2, 0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi),('$-2π$', '$-3π/2$', '$-π$', '$-π/2$', r'$0\ \alpha_i$', 'π/2', 'π', '3π/2', '2π'))plt.yticks((-1, 0, 1))# 设置、显⽰legendplt.legend(loc='best') # loc参数设置图例显⽰的位置# 设置图表的标题plt.title('cos&sin')plt.text(-np.pi, 1, '任意位置添加⽂字',fontdict={'size': 10, 'color': 'y'}) # text在图中任意位置添加⽂字,前两个参数是左下⾓的位置坐标plt.annotate('max', xy=(0, 1), xytext=(1, 1.05), arrowprops=dict(facecolor='k', shrink=1)) # 注释的地⽅xy(x,y)和插⼊⽂本的地⽅xytext(x1,y1) # 移动坐标轴,spines为脊梁,即4个边框ax = plt.gca() # gca stands for 'get current axis'ax.spines['right'].set_color('none') # 设置右‘脊梁’为⽆⾊ax.spines['top'].set_color('none') # 设置上‘脊梁’为⽆⾊ax.xaxis.set_ticks_position('bottom') # 底部‘脊梁’设置为X轴ax.spines['bottom'].set_position(('data', 0)) # 底部‘脊梁’移动位置,y的dataax.yaxis.set_ticks_position('left') # 左部‘脊梁’设置为Y轴ax.spines['left'].set_position(('data', 0)) # 左部‘脊梁’移动位置,x的data# 给特殊点做注释,在2π/3的位置给两条函数曲线加⼀个注释plt.plot([2*np.pi/3, 2*np.pi/3], [0, np.sin(2*np.pi/3)], 'r--') # xy是基于xycoords的dataplt.annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$', xy=(2*np.pi/3, np.sin(2*np.pi/3)), xycoords='data',xytext=(+10, +30), textcoords='offset points', fontsize=12, arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2")) # +10,+30表⽰基于xy加10,加30,textcoords='offset points'代表基于xyplt.scatter([2*np.pi/3], [np.sin(2*np.pi/3)], 40, 'r') # 绘制点x,y,⼤⼩,颜⾊plt.plot([2*np.pi/3, 2*np.pi/3], [0, np.cos(2*np.pi/3)], 'b--')plt.annotate(r'$\cos(\frac{2\pi}{3})=-\frac{1}{2}$', xy=(2*np.pi/3, np.cos(2*np.pi/3)), xycoords='data',xytext=(-90, -50), textcoords='offset points', fontsize=12, arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2")) # arrowprops设置指⽰线的格式,connectionstyle设置线的⾓度,弧度plt.scatter([2*np.pi/3], [np.cos(2*np.pi/3)], 40, 'b')plt.show()线条风格linestyle描述'-'实线':'虚线'--'破折线'None', ' ', ''什么都不画'-.'点划线线条标记maker描述'o'圆圈'.'点'D'菱形's'正⽅形'h'六边形1'*'星号'H'六边形2'd'⼩菱形'_'⽔平线'v'⼀⾓朝下的三⾓形'8'⼋边形'<'⼀⾓朝左的三⾓形'p'五边形'>'⼀⾓朝右的三⾓形','像素'^'⼀⾓朝上的三⾓形'+'加号'\’竖线'None','',' '⽆'x'X颜⾊可以通过调⽤matplotlib.pyplot.colors()得到matplotlib⽀持的所有颜⾊。
如何利⽤Matplotlib库绘制动画及保存GIF图⽚前⾔在⾃学机器学习或者是深度学习的过程中,有的时候总想把执⾏过程或者执⾏结果显⽰出来,所以就想到了动画。
好在⽤Python 实现动画有许多中⽅式,⽽⼤家熟知的 Matplotlib 库就可以实现。
本⽂的⽬的是对 Matplotlib 的动画实现⼿段做⼀个简单的说明。
绘制动画import matplotlib.pyplot as pltimport matplotlib.animation as animation如果要让 matplotlib 实现动画功能的话,那么就要引⼊ animation 模块。
然后再创建 animation 的对象。
anim = animation.FuncAnimation(fig, run, data_gen, blit=False, interval=10,repeat=False, init_func=init)animation 的实现类是 FuncAnimation,它有⼀个构造⽅法。
下⾯先通过⼀个⽰例,讲解 animation 的基本⽤法,然后再来细致分析 FuncAnimation 构造⽅法中各项参数的意义。
我们的⽬标是做⼀个 Sin 函数的动画⽰例。
代码很简单。
import numpy as npimport matplotlib.pyplot as pltimport matplotlib.animation as animationfig, ax = plt.subplots()xdata, ydata = [], []ln, = plt.plot([], [], 'ro',animated=True)def init():ax.set_xlim(-np.pi,np.pi)ax.set_ylim(-1, 1)return ln,def update(frame):xdata.append(frame)ydata.append(np.sin(frame))ln.set_data(xdata, ydata)return ln,anim = animation.FuncAnimation(fig, update, frames=np.linspace(-np.pi,np.pi, 90),interval=10,init_func=init,blit=True)plt.show()核⼼代码是这⼀⾏。
matplotlib输出保存指定尺⼨的图⽚⽅法
其实这个问题来源于笔者的横坐标太多了,然后⽣成的那个figure框框太⼩,导致坐标重叠,⽽输出的图⽚是需要批量保存的,总不能每次都拉长截图吧
所以在plot绘图之前加上了⼀句
plt.figure(figsize=(10, 5))
图就变了hhh
然后偶然间有发现了能调节⼦图也就是subplot性质的⼀个api蛮有趣的,分享下
plt.subplots_adjust(left=0.09,right=1,wspace=0.25,hspace=0.25,bottom=0.13,top=0.91)
然后开头引⽤
import matplotlib.pyplt as plt
然后plt.savefig("123.png")就好了,注意下保存要在show之前2333
以上这篇matplotlib 输出保存指定尺⼨的图⽚⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
matplotlib.pyplot画图并导出保存的实例我就废话不多说了,直接上代码吧!import pandas as pdimport numpy as npimport matplotlib.pyplot as pltfig, ax = plt.subplots()bar_positions=[1,2,3,4]bar_heights=[1,2,3,4]print(np.arange(len([2,2,3,4,5])+1))ax.bar(np.arange(len([2,2,3,4,5])),[1,2,3,4,5], 0.5)#设置x,y数据,区间ax.set_xticks([1,2,3,4,5,6])#设置x轴刻度ax.set_xticklabels([1,2,3,4,5], rotation=45)#设置x轴标签,旋转45度ax.set_yticks([1,2,3,4,5,6])#设置x轴刻度ax.set_yticklabels([1,2,3,4,5], rotation=45)#设置y轴标签,旋转45度ax.set_ylim(0, 7)#设置y轴范围ax.set_xlim(0, 7)#设置x轴范围,当然轴数据范围跟坐标刻度不要冲突就好ax.set_facecolor("orange")#设置背景颜⾊为红⾊for a,b in zip(bar_positions,bar_heights):#显⽰数据标签plt.text(a, b+0.05, '%.0f' % b, ha='center', va= 'bottom',fontsize=7)plt.savefig('D:\\python_practice\\导出的图⽚.png')#保存图⽚plt.show()在matplotlib⼀般使⽤plt.figure来设置窗⼝尺⼨。
基于Linux系统中pythonmatplotlib画图的中⽂显⽰问题的解决⽅法最近想学习⼀些python数据分析的内容,就弄了个爬⾍爬取了⼀些数据,并打算⽤Anaconda⼀套的⼯具(pandas, numpy, scipy, matplotlib, jupyter)等进⾏⼀些初步的数据挖掘和分析。
在使⽤matplotlib画图时,横坐标为中⽂,但是画出的条形图横坐标总是显⽰“框框”,就去查资料解决。
感觉这应该是个⽐较常见的问题,⽹上的中⽂资料也确实很多,但是没有任何⼀个彻底解决了我遇到的问题。
零零碎碎⽤了快3个⼩时的时间,才终于搞定。
特此分享,希望能帮到有同样问题的童鞋。
运⾏环境:python2.7Linux Centos7⽤conda安装的matplotlib和pandas问题:matplotlib画图,⽆法显⽰中⽂问题原因:linux操作系统以及matplotlib的字体库中,没有可⽤的中⽂字体matplotlib包默认只⽀持ASCII码,不⽀持unicode码⽹上资料总结:修改matplotlib的资源配置⽂件,例如增加"Simhei"字体(这个字体并不是所有的linux系统都有的好嘛!修改了并没有作⽤)给linux安装中⽂字体,并修改matplotlib的资源配置⽂件。
(呵呵,并没有作⽤)解决⽅案:其实也是综合了⽹上的各种解决⽅案。
总体说来有以下⼏个步骤:1. 获取matplotlibrc⽂件所在路径。
在jupyter notebook中获取:import matplotlibmatplotlib.matplotlib_fname()例如,我的这个⽂件在:u'~/miniconda2/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc'后续步骤会修改此⽂件中的font参数。
2. 看看系统中的所有字体,以及可⽤的中⽂字体。