目录
6.3D图:from mpl_toolkits.mplt3d import Axes3D
(2)绘制z=sin(sqrt(x^2+y^2))/sqrt(x^2+y^2)的图像
一、简要了解
matplotlib 是 Python 的一个2D绘图库,它提供了一套表示图、操作图以及图内部对象处理的一
些函数,借助它可以绘制各种各样的数据图,如线性图、直方图、饼图等。
1.matplotlib 提供了两种绘图接口:
(1)基于 MATLAB 的绘图接口:
它可以自动创建和管理图以及坐标系,主要通过pyplot 库中的函数实现
(2)基于面向对象的绘图接口
注:所有的操作都是在子图上进行的,pyplot 表示当前子图,若没有就创建一个子图。
2.matplotlib.pyplot 绘图相关的对象:
(1)容器类:
图(figure)、坐标系(axes)、坐标轴(axis)、刻度(tick)
(2)基础类:
线(line)、点(marker)、文本(text)、图例(legend)、网格(grid)、标题(title)
注意:
Python标准库中默认是不包含matplotlib的,需要自己下载和安装。
二、前提准备
若出现上图表示该第三方库已安装
若未出现上述画面,则需要安装:
具体安装方法如下:
命令行安装:pip install matplotlib
想要更具体的了解可看 Excel_wordcloud操作(词云库)这篇博客
注意:
Anaconda与IDLE是两个通道
当jupyter notebook下载了matplotlib这个第三方库,IDLE中可能仍需要下载:
具体哪种情况下还需要下载:可见 numpy_matplotlib (科学计算库和可视化库) 的应用 这篇博客
三、绘图的类型
1、线形图:plot()
2、直方图:hist()
3、条形图:bar()
4、饼图:pie()
5、散点图:scatter()
6、3D图:from mpl_toolkits.mplt3d import Axes3D
7、动态交互图:pyecharts
四、实操:
首先:导入第三方库
(1)import matplotlib.pyplot as plt :
导入第三方数据可视化库 matplotlib 中的 pyplot 绘图模块,别名为plt
' . ' :表示对象(前者)下面的模块(后者)
(2)import numpy as np:
导入科学计算库,别名为np
1.线形图:plot()
plot() : 绘制线形图
方法里面的点需要用列表或数组描述(用 [ ] )
如果只有一组数据,默认为y轴的数据 (x坐标默认为0,1,2,。。。)
效果为:
若有两组数据:
分别为x和y值,要求x值和y值个数相同 即x轴坐标与y轴坐标要一一对应
ylabel() : Y轴坐标标签
xlabel() : X轴坐标标签
坐标系默认为英文,如果需要显示中文另加说明
若未进行说明:
效果为:
若进行说明 即 设置字体样式(设置完字体样式就可显示中文)
使用 rcParams['font.family'] 属性修改字体
效果为:
axis() : 修改坐标轴取值范围
前面两位为x轴,后面两位为y轴,放在 [ ] 里面
savefig() : 保存图
提高版:绘制平行四边形
效果为:
plt.axis(' off ') :隐藏坐标轴
效果为:
进阶版:
(1)同一绘图区绘制多图
Numpy 中的arrange()函数创建一个0-9的整数序列
例:
r :表示数据点的颜色
o : 表示数据点的样子 ,表示为实心圆
- :表示数据线的样子,表示为实线(没写就是没有线)
label:图例名称
效果为:
legend() :显示图例
(2)正余弦曲线图
效果为:
(3) 多区域绘图
subplot() :将当前坐标系切割成多个子块
例 subplot( 3 2 2 ) :切割成3行2列,放在第2个区域
效果为:
(4)综合示例
figure()方法的参数:
num :整数或字符串,可选。如果没有传值,则采用自增值,可通过number 属性访问;如果
传递整数,则会检查是否存在对应的图,存在则直接返回,否则创建新的图;如果传的是字符串,则设
置为窗口的标题
figsize:浮点型元组,可选。图的宽、高值,单位为英寸,默认为[6.4,4.8]
效果为:
2.直方图:hist()
NumPy 生成随机数的常用方法:
np.random.rand(4,5) :随机生成4行5列数组,每个元素都是[0,1)之间的小数
np.random.randint (a,b, (3,4)) :随机生成3行4列数组,每个元素都是[a,b)之间的整数
np.random.randn(4,5) :随机生成4行5列数组,元素的值符合标准正态分布
pyplot 使用 hist()函数绘制直方图,并以元组形式返回直方图的计算结果,包括各区间中元素的数
量、区间的取值范围,以及具体的每个区间对象。hist()函数的语法格式如下:
hist (x, bins=None, range=None, density=False, weights= None, cumulative=False,bottom=None,
histtype='bar', align='mid', orientation= 'vertical',**xkwargs)
bins :
整数、序列或字符串。整数表示等宽区间的个数,自动计算区间范围;序列表示区间的范围,范围
为左闭右开;字符串则表示对应的策略,默认为hist.bins
效果为:
3.条形图:bar()
bar()函数的参数含义:
X:X轴的位置序列,即条形的起始位置
height:Y轴的数值序列,即条形图的高度,需展示的数据
width:每个条形的宽度,可选,默认为 0.8
效果为:
4.饼图:pie()
autopct : 设置饼图内每块百分比显示样式,可以使用format 字符串或者格式化函数
" % width. Precision f %% " :指定饼图内百分比的数字显示宽度和小数的位数
radius : 设置饼图的半径
shadow : 是否有阴影效果,默认为 False
labeldistance :每块旁边的文本标签到饼的中心点的距离
效果为:
5.散点图:scatter()
scatter()函数的参数含义:
x: 散点图中点的X轴坐标
y: 散点图中点的Y轴坐标
效果为:
6.3D图:from mpl_toolkits.mplt3d import Axes3D
(1)绘制z=exp(-(x^2+y*^2)/2)的图像
效果为:
(2)绘制z=sin(sqrt(x^2+y^2))/sqrt(x^2+y^2)的图像
效果为:
7.动态交互图:pyecharts
注:
Python标准库中默认是不包含 pyecharts 的,需要自己下载和安装。
具体安装方法如下:
命令行安装:pip install pyecharts
想要更具体的了解可看 Excel_wordcloud操作(词云库)这篇博客
效果为: