一、matplotlib介绍
matplotlib是python从matlab继承的绘图库,可以满足大部分的日常使用,是目前最流行的底层绘图库。
二、matplotlib的使用
(一)导入模块【中文显示】
显示中文方面mac和windows根据自己电脑系统选一个即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import matplotlib.pyplot as plt # 显示中文(mac) from matplotlib.font_manager import FontManager fm = FontManager() mat_fonts = set (f.name for f in fm.ttflist) print (mat_fonts) plt.rcParams[ 'font.sans-serif' ] = [ 'Arial Unicode MS' ] #显示中文(windows) from pylab import mpl #以黑体显示中文 mpl.rcParams[ 'font.sans-serif' ] = [SimHei] #解决保存图像是负号 显示为方块的问题 mpl.rcParams[ 'axes.unicode_minus' ] = False # 导入numpy 方便下面绘图展示 import numpy as np |
(二)画布与画板,简单绘图
和现实世界绘图一样,在matplotlib里绘图我们也需定义画布和画板,其中一个画布里可以存在多个画板。在绘图时首先要指明在哪个画板上绘图。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# 建立一张画布 其中包括2行三列六张画板 fig,axes = plt.subplots(nrows = 2 ,ncols = 3 ,figsize = ( 20 , 8 )) # data x为测试数据 np.random.seed( 100 ) data = np.random.randn( 50 ) x = np.arange( 50 ) # 在第一个子图上做折线图 axes[ 0 , 0 ].plot(x,data,linestyle = '-' ,color = 'b' ,marker = 'o' ) # 在第二个子图上做直方图 axes[ 0 , 1 ].hist(data,bins = 20 ,facecolor = 'c' ) # 在第三个子图上做垂直条形图同时加上折线 axes[ 0 , 2 ].bar(x,data) axes[ 0 , 2 ].plot(x,data,linestyle = '-.' ,color = 'r' ) # 在第四个子图上做水平条形图 axes[ 1 , 0 ].barh(x,data) # 在第五个子图上做饼图 explode为突出显示的部分 explode = [x * 0 for x in range ( 50 )] explode[ 40 ] = 0.1 axes[ 1 , 1 ].pie(data,explode = explode) # 在第六个子图上做散点图 explode为突出显示的部分 axes[ 1 , 2 ].scatter(x,data,c = 'r' ,marker = 'o' ) plt.show() |
(三)添加图片信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import matplotlib.pyplot as plt # 显示中文【mac】 from matplotlib.font_manager import FontManager fm = FontManager() mat_fonts = set (f.name for f in fm.ttflist) print (mat_fonts) plt.rcParams[ 'font.sans-serif' ] = [ 'Arial Unicode MS' ] #设置所需数据 age = range ( 11 , 31 ) jack = [ 1 , 0 , 1 , 1 , 2 , 4 , 3 , 2 , 3 , 4 , 4 , 5 , 6 , 5 , 4 , 3 , 3 , 1 , 1 , 1 ] tom = [ 1 , 0 , 3 , 1 , 2 , 2 , 3 , 3 , 2 , 1 , 2 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ] # dpi为设置像素大小 fig = plt.figure(figsize = ( 20 , 8 ), dpi = 80 ) # jack与tom11到30交友记录 plt.plot(age, jack, 'r' , label = 'jack' , linestyle = '-' , linewidth = 5 , marker = 'o' ) plt.plot(age, tom, 'g' , label = 'tom' , linestyle = '-.' , linewidth = 5 , marker = '*' ) # 设置x轴数据刻度 plt.xticks(age) # 设置x轴数据标签 plt.xlabel( "age" , fontsize = 20 ) # 设置y轴数据标签 plt.ylabel( "numbers" , fontsize = 20 ) # 设置图表标题 plt.title( "friends made from 11 to 30" , fontsize = 20 ) # 设置网格线 plt.grid() # 设置图例位置 plt.legend(loc = 0 ) # 添加水印 plt.text( 30 , 2 , "交友记录" , fontsize = 200 , color = 'black' , ha = 'right' , va = 'bottom' , alpha = 0.1 ) # 添加数据标签 plt.text( 23 , 6 , 'max num' , fontsize = 20 , color = 'b' , verticalalignment = 'center' ) #将图保存到当前目录 命名为test.png plt.savefig( 'test.png' ) plt.show() |
到此这篇关于Python绘图之详解matplotlib的文章就介绍到这了,更多相关python绘图之matplotlib内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/weixin_44201373/article/details/119209360