Python数据分析与展示(3)——Matplotlib库入门

来源:互联网 发布:看表情猜网络用语 编辑:程序博客网 时间:2024/06/04 20:05

最近在中国大学mooc网学习Python数据分析与展示相关知识,记入下来,以供参考。

Matplotlib库入门

Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发
matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式。

import matplotlib.pyplot as plt     #调用时一般将其命名为plt

Matplotlib库小测

import matplotlib.pyplot as plt plt.plot([3,1,4,5,2])   #plt.plot()只有一个输入列表或数组时,参数被当作Y轴,X轴以索引自动生成plt.ylabel('grade')plt.xlabel('x')plt.savefig('test',dpi = 500)   #plt.savefig()将输出图形存储为文件,默认PNG格式,可以通过dpi修改输出质量plt.show()

这里写图片描述

import matplotlib.pyplot as plt plt.plot([0,2,4,6,8],[3,1,4,5,2])   #plt.plot(x,y)当有两个以上参数时,按照X轴和Y轴顺序绘制数据点plt.ylabel('grade')plt.xlabel('x')plt.axis([-1,10,0,6])   #x轴最左边坐标起始-1,终止于10,y轴坐标起始于0,终止于6plt.show()

这里写图片描述

pyplot的绘图区域

plt.subplot(nrows, ncols, plot_number)
- nrows : 将绘图区域分成的行数
- ncols : 将绘图区域分成的列数
- plot_number: 当前绘图区

import matplotlib.pyplot as plt import numpy as npdef f(t):    return np.exp(-t) * np.cos(2*np.cos(2*np.pi*t))a = np.arange(0.0,5.0,0.02)plt.subplot(211)plt.plot(a,f(a))plt.subplot(2,1,2)plt.plot(a,np.cos(2*np.pi*a),'r--')plt.show()

这里写图片描述

pyplot的plot()函数

plt.plot(x, y, format_string, **kwargs)
x : X轴数据,列表或数组,可选
y : Y轴数据,列表或数组
format_string: 控制曲线的格式字符串,可选
**kwargs : 第二组或更多(x,y,format_string)
注意:当绘制多条曲线时,各条曲线的x不能省略

∙ format_string: 控制曲线的格式字符串,可选由颜色字符、风格字符和标记字符组成

颜色字符

颜色 字符说明 颜色 字符说明 ‘b’ 蓝色 ‘m’ 洋红色magenta ‘g’ 绿色 ‘y’ 黄色 ‘r’ 红色 ‘k’ 黑色 ‘c’ 青绿色cyan ‘w’ 白色 ‘#008000’ RGB某颜色 ‘0.8’ 灰度值字符串

风格字符

风格 字符说明 ‘‐’ 实线 ‘‐‐’ 破折线 ‘‐.’ 点划线 ‘:’ 虚线 ’ ‘ 无线条

标记字符

标记字符 说明 标记字符 说明 标记字符 说明 ‘.’ 点标记 ‘1’ 下花三角标记 ‘h’ 竖六边形标记 ‘,’ 像素标记(极小点) ‘2’ 上花三角标记 ‘H’ 横六边形标记 ‘o’ 实心圈标记 ‘3’ 左花三角标记 ‘+’ 十字标记 ‘v’ 倒三角标记 ‘4’ 右花三角标记 ‘x’ x标记 ‘^’ 上三角标记 ’s’ 实心方形标记 ‘D’ 菱形标记 ‘>’ 右三角标记 ‘p’ 实心五角标记 ‘d’ 瘦菱形标记 ‘<’ 左三角标记 ‘*’ 星形标记 ‘|’ 垂直线标记


import matplotlib.pyplot as plt import numpy as npa = np.arange(10)plt.plot(a,a*1.5,'go-',a,a*2.5,'rx',a,a*3.5,'*',a,a*4.5,'b--')plt.show()

这里写图片描述

**kwargs : 第二组或更多(x,y,format_string)
color : 控制颜色, color=’green’
linestyle : 线条风格, linestyle=’dashed’
marker : 标记风格, marker=’o’
markerfacecolor: 标记颜色, markerfacecolor=’blue’
markersize : 标记尺寸, markersize=20
……

pyplot的中文显示

第一种方法

pyplot并不默认支持中文显示,需要rcParams修改字体实现

rcParams的属性

属性 说明 ‘font.family’ 用于显示字体的名字 ‘font.style’ 字体风格,正常’normal’或斜体’italic’ ‘font.size’ 字体大小,整数字号或者’large’、’x‐small’

此方法改变的是全局字体,包括横纵坐标的数字

import matplotlib.pyplot as plt import matplotlibimport numpy as npmatplotlib.rcParams['font.family'] = 'STSong'   #华文宋体matplotlib.rcParams['font.size'] = 20a = np.arange(0.0,5.0,0.02)plt.xlabel('横轴:时间')plt.ylabel('纵轴:振幅')plt.plot(a, np.cos(2*np.pi*a),'r--')plt.savefig('test',dpi = 100)plt.show()

这里写图片描述

第二种方法

在有中文输出的地方,增加一个属性:fontproperties

import matplotlib.pyplot as plt import numpy as npa = np.arange(0.0,5.0,0.02)plt.xlabel('横轴:时间',fontproperties = 'SimHei',fontsize = 20)plt.ylabel('纵轴:振幅',fontproperties = 'SimHei',fontsize = 20)plt.plot(a, np.cos(2*np.pi*a),'r--')plt.savefig('test',dpi = 100)plt.show()

这里写图片描述

pyplot的文本显示

pyplot的文本显示函数

函数 说明 plt.xlabel() 对X轴增加文本标签 plt.ylabel() 对Y轴增加文本标签 plt.title() 对图形整体增加文本标签 plt.text() 在任意位置增加文本 plt.annotate() 在图形中增加带箭头的注解
import matplotlib.pyplot as plt import numpy as npa = np.arange(0.0,5.0,0.02)plt.plot(a, np.cos(2*np.pi*a),'r--')plt.xlabel('横轴:时间',fontproperties = 'SimHei',fontsize = 15,color = 'green')plt.ylabel('纵轴:振幅',fontproperties = 'SimHei',fontsize = 15)plt.title('正弦波实例 $y=cos(2\pi x)$',fontproperties = 'SimHei',fontsize = 25)        # $y=cos(2\pi x)$ 表示Latex格式#plt.text(2,1,r'$\mu=100$',fontsize = 15)plt.annotate(r'$\mu=100$',xy=(2,1),xytext = (3,1.5),             arrowprops=dict(facecolor='black',shrink =0.1,width=2))# arrowprops 箭头的属性  shrink表示从箭头的开始到结束按照0.1的比例缩进plt.axis([-1,6,-2,2])plt.grid(True)  #加入网格线plt.show()

这里写图片描述

pyplot的复杂子绘图区域

第一种方法

plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1)
理念:设定网格,选中网格,确定选中行列区域数量,编号从0开始
-GridSpes:将整个绘图区域分成一个什么样的形状
-CurSpec:当前选定的位置
-Colspan:从当前选定的位置在行的方向上延伸
-rowspan:从当前选定的位置在列的方向上延伸

plt.subplot2grid((3,3), (0,0), colspan=3)...plt.subplot2grid((3,3), (1,0), colspan=2)...plt.subplot2grid((3,3), (1,2), rowspan=2)...plt.subplot2grid((3,3), (2,0))...plt.subplot2grid((3,3), (2,1))

这里写图片描述

第二种方法

import matplotlib.gridspec as gridspecimport matplotlib.pyplot as pltgs = gridspec.GridSpec(3,3)ax1 = plt.subplot(gs[0,:])ax2 = plt.subplot(gs[1,:-1])ax3 = plt.subplot(gs[1:,-1])ax4 = plt.subplot(gs[2,0])ax5 = plt.subplot(gs[2,1])
阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝脸过敏红了怎么办 小孩湿疹脸上都是红红的怎么办 眼周刺痛红红的怎么办 脸敷面膜刺痛红红的怎么办 脸上有凹凸不平的坑怎么办 宝宝脸上角质层薄有红血丝怎么办 红衣军到决赛圈怎么办 宝宝湿疹留下的黑印怎么办 出牙宝宝很烦躁怎么办 法斗嘴唇破了怎么办 狗嘴巴周围红了怎么办 脸上起红包还痒怎么办 睾丸胀痛有下坠感怎么办 英语不好又不会读怎么办 七个月宝宝手上长倒刺怎么办 字母纹身纹反了怎么办 花甲生的吃了怎么办 别人告我欠他钱怎么办 实习手册没有公司的印章怎么办? 家长管的太严怎么办 对于老公沉迷于股票怎么办 月经期吃了香瓜怎么办 月经漏到内裤上怎么办 上班没时间养狗怎么办 宝宝呼吸道感染反复发烧怎么办 熬夜后头晕想吐怎么办 生气后全身无力酸痛怎么办? 久坐导致的腰疼怎么办 削土豆手变黑了怎么办 熬夜后头痛眼痛怎么办 孩子毎天通宵游戏怎么办 熬夜写作业困了怎么办 三十多岁白头发越来越多怎么办 AI界面字体太小怎么办 睡不着怎么办躺倒床上脑子混乱 作息规律不正常夜里睡不着怎么办 作息不规律引起身体痒怎么办 在大学里好无聊怎么办 开会时间通知错了怎么办 商场要求商户变更位置怎么办 怀孕初期症状小腹痛怎么办