⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据分析,机器学习及深度学习的代码能力打下坚实的基础。
????本文已收录于Python基础系列专栏: Python基础系列教程 欢迎订阅,持续更新。
13.0 环境配置
【1】 要不要plt.show()
- ipython中可用魔术方法 %matplotlib inline
- pycharm 中必须使用plt.show()
【2】设置样式
临时地改变风格,采用with这个上下文管理器。
【3】将图像保存为文件
13.1 Matplotlib库
13.1.1 折线图
- 绘制多条曲线
【1】调整线条颜色和风格
- 调整线条颜色
- 调整线条风格
- 调整线宽
- 调整数据点标记
marker设置坐标点
markersize 设置坐标点大小
颜色跟风格设置的简写 color_linestyles = ["g-", "b--", "k-.", "r:"]
颜色风格线性 设置的简写 color_marker_linestyles = ["g*-", "b+--", "ko-.", "rs:"]
其他用法及颜色缩写、数据点标记缩写等请查看官方文档,如下:
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html#matplotlib.pyplot.plot
【2】调整坐标轴
- xlim, ylim # 限制x,y轴
- axis
tight 会紧凑一点
equal 会松一点
- 对数坐标
- 调整坐标轴刻度
plt.xticks(np.arange(0, 12, step=1))
- 调整刻度样式
plt.tick_params(axis="both", labelsize=15)
【3】设置图形标签
【4】设置图例
- 默认
- 修饰图例
【5】添加文字和箭头
- 添加文字
- 添加箭头
13.1.2 散点图
【1】简单散点图
【2】颜色配置
颜色配置参考官方文档
https://matplotlib.org/examples/color/colormaps_reference.html
【3】根据数据控制点的大小
【4】透明度
【例】随机漫步
13.1.3 柱形图
【1】简单柱形图
【2】累加柱形图
【3】并列柱形图
【4】横向柱形图barh
13.1.4 多子图
【1】简单多子图
【2】多行多列子图
【3】不规则多子图
13.1.5 直方图
【1】普通频次直方图
【2】概率密度
【3】累计概率分布
【例】模拟投两个骰子
- 重复投一个骰子
- 重复投两个骰子
13.1.6 误差图
【1】基本误差图
【2】柱形图误差图
13.1.7 面向对象的风格简介
【例1】 普通图
【2】画中画
【3】 多子图
13.1.8 三维图形简介
【1】三维数据点与线
【2】三维数据曲面图
13.2 Seaborn库-文艺青年的最爱
【1】Seaborn 与 Matplotlib
Seaborn 是一个基于 matplotlib 且数据结构与 pandas 统一的统计图制作库
【2】柱形图的对比
【3】以鸢尾花数据集为例
</style>
sepal_length |
sepal_width |
petal_length |
petal_width |
species |
|
0 |
5.1 |
3.5 |
1.4 |
0.2 |
setosa |
1 |
4.9 |
3.0 |
1.4 |
0.2 |
setosa |
2 |
4.7 |
3.2 |
1.3 |
0.2 |
setosa |
3 |
4.6 |
3.1 |
1.5 |
0.2 |
setosa |
4 |
5.0 |
3.6 |
1.4 |
0.2 |
setosa |
</div>
13.3 Pandas 中的绘图函数概览
【1】线形图
</style>
A |
B |
C |
D |
|
0 |
-1.311443 |
0.970917 |
-1.635011 |
-0.204779 |
1 |
-1.618502 |
0.810056 |
-1.119246 |
1.239689 |
2 |
-3.558787 |
1.431716 |
-0.816201 |
1.155611 |
3 |
-5.377557 |
-0.312744 |
0.650922 |
0.352176 |
4 |
-3.917045 |
1.181097 |
1.572406 |
0.965921 |
</div>
【2】柱形图
</style>
a |
b |
c |
d |
|
0 |
0.587600 |
0.098736 |
0.444757 |
0.877475 |
1 |
0.580062 |
0.451519 |
0.212318 |
0.429673 |
2 |
0.415307 |
0.784083 |
0.891205 |
0.756287 |
3 |
0.190053 |
0.350987 |
0.662549 |
0.729193 |
4 |
0.485602 |
0.109974 |
0.891554 |
0.473492 |
5 |
0.331884 |
0.128957 |
0.204303 |
0.363420 |
6 |
0.962750 |
0.431226 |
0.917682 |
0.972713 |
7 |
0.483410 |
0.486592 |
0.439235 |
0.875210 |
8 |
0.054337 |
0.985812 |
0.469016 |
0.894712 |
9 |
0.730905 |
0.237166 |
0.043195 |
0.600445 |
</div>
- 多组数据竖图
- 多组数据累加竖图
- 多组数据累加横图
【3】直方图和密度图
</style>
A |
B |
C |
|
0 |
-4.250424 |
1.043268 |
1.356106 |
1 |
-2.393362 |
-0.891620 |
3.787906 |
2 |
-4.411225 |
0.436381 |
1.242749 |
3 |
-3.465659 |
-0.845966 |
1.540347 |
4 |
-3.606850 |
1.643404 |
3.689431 |
</div>
- 普通直方图
- 累加直方图
- 概率密度图
- 差分
</style>
A |
B |
C |
D |
|
0 |
-0.277843 |
-0.310656 |
-0.782999 |
-0.049032 |
1 |
0.644248 |
-0.505115 |
-0.363842 |
0.399116 |
2 |
-0.614141 |
-1.227740 |
-0.787415 |
-0.117485 |
3 |
-0.055964 |
-2.376631 |
-0.814320 |
-0.716179 |
4 |
0.058613 |
-2.355537 |
-2.174291 |
0.351918 |
</div>
【4】散点图
</style>
longitude |
latitude |
housing_median_age |
total_rooms |
total_bedrooms |
population |
households |
median_income |
median_house_value |
ocean_proximity |
|
0 |
-122.23 |
37.88 |
41.0 |
880.0 |
129.0 |
322.0 |
126.0 |
8.3252 |
452600.0 |
NEAR BAY |
1 |
-122.22 |
37.86 |
21.0 |
7099.0 |
1106.0 |
2401.0 |
1138.0 |
8.3014 |
358500.0 |
NEAR BAY |
2 |
-122.24 |
37.85 |
52.0 |
1467.0 |
190.0 |
496.0 |
177.0 |
7.2574 |
352100.0 |
NEAR BAY |
3 |
-122.25 |
37.85 |
52.0 |
1274.0 |
235.0 |
558.0 |
219.0 |
5.6431 |
341300.0 |
NEAR BAY |
4 |
-122.25 |
37.85 |
52.0 |
1627.0 |
280.0 |
565.0 |
259.0 |
3.8462 |
342200.0 |
NEAR BAY |
</div>
【5】多子图
</style>
A |
B |
C |
D |
|
0 |
-0.134510 |
0.364371 |
-0.831193 |
-0.796903 |
1 |
0.130102 |
1.003402 |
-0.622822 |
-1.640771 |
2 |
0.066873 |
0.126174 |
0.180913 |
-2.928643 |
3 |
-1.686890 |
-0.050740 |
0.312582 |
-2.379455 |
4 |
0.655660 |
-0.390920 |
-1.144121 |
-2.625653 |
</div>
- 默认情形
- 设定图形安排
其他内容请参考Pandas中文文档
https://www.pypandas.cn/docs/user_guide/visualization.html#plot-formatting