目录
一、绘图基础
1、导入准备
import matplotlib.pyplot as plt
2、图片与子图
(1)准备子图对象
在任何绘图之前,我们需要一个Figure对象,可以理解成我们需要一张画板才能开始绘图。
不能使用空白的图片进行绘图,你需要使用add_subplot创建一个或多个子图(subplot)
fig.add_subplot返回的对象是Axes Subplot对象,使用这些对象你可以直接在其他空白的子图上调用对象的实例方法进行绘图
(2)调用子图对象绘图
创建子图:k--’是用于绘制黑色分段线的style选项
(3)subplots参数
补充:
3、调整子图周围的间距
- 使用图对象上的subplots_adjust方法更改间距,也可以用作顶层函数:
- wspace和hspace分别控制的是图片的宽度和高度百分比,以用作子图间的间距
- 解析:
4、颜色、标记和线类型
- 主函数plot接收带有x和y轴的数组以及一些可选的字符串缩写参数来指明颜色和线类型
- 代码解析:
- comsum函数解析:
- drawstyle参数:Matplotlib中用于控制折线图线条样式的参数之一。可以设置以下几个值:
'default':默认值,线段之间是直线连接。
'steps':将每个点之间的线段转化为阶梯状线段,即从一个点开始,先向上或向下,然后向右,再向上或向下,依此类推,直到下一个点。
'steps-pre':与'steps'类似,但是从前一个点开始向右绘制线段。
'steps-mid':与'steps'类似,但是在两个点之间先向上或向下,再向右,最后再向上或向下。
- 添加图例legend函数
5、刻度、标签和图例
设置标题、轴标签、刻度和刻度标签
随机漫步:
- 参数
1, 1, 1
表示这是一个1行1列的子图矩阵,并且我们选择了第1个子图(索引从0开始)子图的引用赋值给变量ax
。
- set_xticks:表示在数据范围内设定刻度的位置,默认情况下,这些刻度也有标签。
- set_xticklabels为标签赋值
- rotation:将x轴刻度标签旋转30度。
- set_xlabel:给x轴一个名称, set_titel会给子图一个标题
- 添加图例
loc参数:控制matplotlib在哪里放置图表。通常使用'best’,它会自动选择最合适的位置。
如果取消图例中的元素,不要传入label参数或者传入label='_nolegend_'。
- 补充:
6、将图片保存到文件
二、绘图实例
1、折线图
- Series和DataFrame都有一个plot属性,用于绘制基本的图形。
- 默认情况下,plot()绘制的是折线图
(1)serious对象:
- Series对象的索引传入matplotlib作为绘图的x轴,传入use_index=False来禁用这个功能。
- 参数
实操:
(2)DataFrame对象
plot方法在同一个子图中将每一列绘制为不同的折线,并自动生成图例
解析:每个索引值,均对应了四种数据,即ABCD的四列数据,所以每个x,具有4个y值
- 参数
2、柱状图
- plot.bar()和plot.barh()可以分别绘制垂直和水平的柱状图。
- 在绘制柱状图时, Series或DataFrame的索引将会被用作x轴刻度(bar)或y轴刻度(barh)
- 通过传递stacked=True来生成堆积柱状图,会使得每一行的值堆积在一起
3、直方图
- plot.hist方法:直方图是一种条形图,用于给出值频率的离散显示。数据点被分成离散的,均匀间隔的箱,并且绘制每个箱中数据点的数量
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 生成一组随机数据
data = pd.Series(np.random.randn(1000))
# 绘制直方图
data.plot.hist(bins=20, edgecolor='black')
# 添加标题和标签
plt.title('Histogram Example')
plt.xlabel('Value')
plt.ylabel('Frequency')
# 显示图形
plt.show()
- 如果不使用series对象
4、密度图
- distplot方法:绘制直方图和连续密度估计,通过distplot方法seaborn使直方图和密度图的绘制更为简单
5、散点图或点图
- 点图或散点图:用于检验两个一维数据序列之间的关系
- seaborn的regplot方法:该方法可以绘制散点图,并拟合出一个条线性回归线(见图9-24)