可视化数据分析
一、线形图
二、2D图形
三、图形中注释、文字和箭头
四、3D图形
五、极坐标与雷达图
matplotlib的介绍:这工具是一个基本的可视化数据分析工具,主要用于处理数据图表、图像等可视化的分析。
导入
import matplotlib.pyplot as plt # 导入matplotlib的脚本层框架
import numpy as np # 与numpy联合使用
Matplotlib包含的基本元素:
- 坐标轴:
平面直角坐标系包含x轴和y轴
三维坐标包括x轴、y轴和z轴
极坐标包含极轴- 坐标轴刻度:
每个轴上都会有一定的刻度,用一定长度来度量特定值- 坐标轴的标签:
刻画每个坐标轴上的刻度代表是一个什么样量- 绘图区域:
平面直角坐标包含四个象限,三维坐标包含8个卦限
一、线形图
1、线形图的绘制
1.1 包含一条曲线的线形图
plot()函数,用于绘制线形图
show()函数,用于将绘制好的线形图显示在坐标系中
画一条曲线,可以传一个数组,也可以传两个数组
传一个数组:x轴表示数组的下标,y轴表示数组中具体的值
传两个数组:要求两个数组的数据量要一致,x轴表示数组1的值,y轴表示数组2的值,此时图像反映的就是数组2随着数组1的值的变化而变化的规律
一个数组 x
两个数组 x,y
1.2 包含多条曲线的线形图
y1 = x**2
y2 = np.tan(x)
y3 = x**3
注意:
一个show函数一次只能开启一个坐标系,所有show函数前面画所有的图像,都会在show函数开启坐标系中显示
方式一:调用多个plot函数来画,然后用一个show函数统一显示在同一个坐标系中
plt.plot(x,y1)
plt.plot(x,y2)
plt.show()
plt.plot(x,y3)
plt.show()
第一个图像是y1,x和y2,x
第二个图像是y3,x
方式二、调用一个plot函数,传多对数组可以画出多条曲线
每次输完代码,都要加上plt.show()才能展示图像,很麻烦
这里有一个小技巧点:
加一会魔法指令%matplotlib inline
这个魔法指令,可以 在一个绘图的cell的最后默认加上plt.show()
可以看到,输完plt.plot(x,y),执行这个指令,可以直接显示图像
2. 网格线
plt.grid()
plt.grid()里还可以加入参数lw=1, 线宽为1
c=‘m’,颜色为洋红色
alpha=0.5 透明度为0.5
练习:绘制一个半径为5的圆
函数的表示方式: x^2 + y^2 = 25
在编程中我们要定义一个x数组,用x来表示y
y = (25-x^2 )^0.5 和y = -(25-x^2 )^0.5
这是圆吗?确定不是椭圆?
这是圆,只不过坐标轴的刻度不统一,修改一下就行了
那么再画个椭圆吧
这才是真正的椭圆,为了观察方便,可以加上网格线
3、轴面
每个plt.show函数都会创建并且显示一个轴面,如果我们需要显示多个坐标系,就需要我们在当前轴面中添加子轴面
先来创建第一个子轴面
在这个轴面下再创建第二个,第三个子轴面
向每一个子轴面中添加图像
查看效果
4. 坐标轴的界限
法一:用axis方法来给坐标轴设置界限
此时图像是一个椭圆
加上plt.axis(“off”),去掉了坐标轴
法二:使用xlim和ylim设置
为什么这个tan函数的极值不是无穷?这个是底层算法的原因
5、设置坐标轴的标签 label
默认情况下
修改纵坐标标签方向 rotation
当 rotation =0时是水平 当 rotation =90时是垂直
修改纵坐标标签位置
horizontalalignment默认是center 可以有left,right选项
6、设置标题 title()
text = plt.title(“y=sinx”) 设置标题 用text接收
text.set_fontstyle(“italic”) 设置字体为意大利体
text.set_backgroundcolor(“blue”) 设置背景颜色为蓝色
text.set_color(“red”) 设置字体颜色为红色
text.set_rotation(60 旋转60°(逆时针)
7、图例
方法一,在legen函数中添加
方法二,在每条曲线上设置一个label属性,然后用legend函数统一显示
ncol代表图例有多少列
ncol=2时,图例按两列显示
loc的可取值,默认是best或者0,代表在最合适的位置,这里是(1,1),图例显示在坐标轴外右上角
loc还可以取一个元组,代表图例的比例位置,这个比例是以整个坐标轴为比例 (X轴,Y轴)loc = (0,1)时,在坐标轴上方,x轴为0,y轴为15
loc的取值:
字符串 | 数值 | 字符串 | 数值 |
---|---|---|---|
best | 0 | center left | 6 |
upper right | 1 | center right | 7 |
upper left | 2 | lower center | 8 |
lower left | 3 | upper center | 9 |
lower right | 4 | center | 10 |
right | 5 |
8、保存图片 plt.savefig()
保存到同级路径下
dpi=100,分辨率 : 表示单位英寸上有100个像素
facecolor=“b” 背景颜色 蓝色
9、线形图的风格设计
9.1线型
- 设置线型:参数linestyle或者ls
取值:"-“实线,”–“破折线,”-.“点划线,”:"虚线,"steps"阶梯线,"None"代表不画线
- 设置不同宽度的破折线
属性dashes,传一个列表,列表中的元素成对出现,其中偶数序号的元素代表这段的宽度,奇数代表前面的偶数对应的间隔
9.2 点型
marker代表点型,可取值如下:
“1” 一角朝下的三脚架 "2"一角朝上的三脚架 "3"一角朝左的三脚架 “4"一角朝右的三脚架
“s"正方形 p 五边形 h 六边形 H 六边形2 8 八边形
. 点 x 代表X * 代表* + 代表+ ,像素
o 圆 D菱形 d小菱形 None无
_ 水平线 | 垂直线
“>” “<” " ^” " v” 四个朝向的三角形
- 圆形
- 菱形
3) 去掉线的菱形
9.3 颜色
属性:color或者c
颜色的可取值:
颜色名:比如red,green,blue等
颜色的别称:
红色 r,绿色 g,蓝色 b,黄色 y,青色 c,黑色 k,洋红色 m,白色 w
六位十六进制的字符串:#fdce90
RGB元组:(0.1,0.2,0.3) 或者rgba(0.1,0.4,0.6,0.2)
9.4 透明度 alpha
9.5 背景色 facecolor
如果要设置图像绘图区域的背景色,需要借助于子轴面
9.6 更多的点和线的设置
c或者color 线的颜色
linestyle或者ls 线的样式
linewidth或者lw 线宽
marker 点型
markeredgecolor 点的边缘的颜色
markeredgewidth 点的边缘的宽度
markerfacecolor 点的内部颜色
markersize 点的大小
不同的设置方法
- 用格式字符串统一设置点型、线性和颜色
- 用setter方法来设置
9.7 设置x轴和y轴的刻度
例如正弦函数图像,一个周期为2Π,重新设置极值对应的横,纵坐标