小白学 Python 数据分析(17):Matplotlib(二)基础操作

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

小白学 Python 数据分析(17):Matplotlib(二)基础操作

极客挖掘机   2020-03-20 我要评论
![](https://cdn.geekdigging.com/python/spider-blog/Python_logo.jpg) > 人生苦短,我用 Python 前文传送门: [小白学 Python 数据分析(1):数据分析基础](https://www.geekdigging.com/2020/01/19/6719980708/) [小白学 Python 数据分析(2):Pandas (一)概述](https://www.geekdigging.com/2020/01/20/6718497214/) [小白学 Python 数据分析(3):Pandas (二)数据结构 Series](https://www.geekdigging.com/2020/02/04/3234667780/) [小白学 Python 数据分析(4):Pandas (三)数据结构 DataFrame](https://www.geekdigging.com/2020/02/05/9920298470/) [小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据](https://www.geekdigging.com/2020/02/16/6852411690/) [小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择](https://www.geekdigging.com/2020/02/20/6566891797/) [小白学 Python 数据分析(7):Pandas (六)数据导入](https://www.geekdigging.com/2020/02/23/7355903936/) [小白学 Python 数据分析(8):Pandas (七)数据预处理](https://www.geekdigging.com/2020/02/25/9013297409/) [小白学 Python 数据分析(9):Pandas (八)数据预处理(2)](https://www.geekdigging.com/2020/02/27/2857868620/) [小白学 Python 数据分析(10):Pandas (九)数据运算](https://www.geekdigging.com/2020/02/29/5808964196/) [小白学 Python 数据分析(11):Pandas (十)数据分组](https://www.geekdigging.com/2020/03/03/5975552137/) [小白学 Python 数据分析(12):Pandas (十一)数据透视表(pivot_table)](https://www.geekdigging.com/2020/03/04/8327177610/) [小白学 Python 数据分析(13):Pandas (十二)数据表拼接](https://www.geekdigging.com/2020/03/06/5036602239/) [小白学 Python 数据分析(14):Pandas (十三)数据导出](https://www.geekdigging.com/2020/03/07/6918490736/) [小白学 Python 数据分析(15):数据可视化概述](https://www.geekdigging.com/2020/03/09/7393240956/) [小白学 Python 数据分析(16):Matplotlib(一)坐标系](https://www.geekdigging.com/2020/03/14/2444388683/) ## 坐标轴标题设置 各位同学好,我又来了,本文给大家带来的是有关 Matplotlib 的一些基础操作。 ![](https://cdn.geekdigging.comhttps://img.qb5200.com/download-x/data_analysishttps://img.qb5200.com/download-x/data_visualization/nuli.jpg) 在前一篇文章中,我们介绍了如何使用 Matplotlib 绘制坐标系,本文我们接着介绍 Matplotlib 。 先看一个简单的示例: ```python import matplotlib.pyplot as plt x_data = ['2011','2012','2013','2014','2015','2016','2017'] y_data = [58000,60200,63000,71000,84000,90500,107000] plt.xlabel('年份') plt.ylabel('销量') plt.plot(x_data, y_data) plt.show() ``` 结果如下: ![](https://cdn.geekdigging.comhttps://img.qb5200.com/download-x/data_analysishttps://img.qb5200.com/download-x/data_visualization/zuobiaozhou.png) 好像哪里不太对的样子,横轴和数轴的标题没有显示出来,看一下程序运行,没有报错,但是报出来一个警告: ```shell RuntimeWarning: Glyph 24180 missing from current font. ``` 这个警告的含义是 plt 画图是找不到字体,那么这里我们手动设置一下字体: ```python plt.rcParams['font.sans-serif']=['SimHei'] ``` 完整的样例代码如下: ```python import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] x_data = ['2011','2012','2013','2014','2015','2016','2017'] y_data = [58000,60200,63000,71000,84000,90500,107000] plt.xlabel('年份') plt.ylabel('销量') plt.plot(x_data, y_data) plt.show() ``` 结果如下: ![](https://cdn.geekdigging.comhttps://img.qb5200.com/download-x/data_analysishttps://img.qb5200.com/download-x/data_visualization/zuobiaozhou_1.png) 这下显示正常了。 我们还可以通过参数 `labelpad` 设置标题到坐标轴的距离,这里为了演示效果设置的距离稍微大了点: ```python plt.xlabel('年份', labelpad=50) plt.ylabel('销量', labelpad=50) ``` 结果如下: ![](https://cdn.geekdigging.comhttps://img.qb5200.com/download-x/data_analysishttps://img.qb5200.com/download-x/data_visualization/zuobiaozhou_2.png) 我们还可以通过参数对文本的相关属性进行设置,下面看下一些常用的设置参数: ```python plt.xlabel('年份', labelpad=50, fontsize='xx-large', fontweight='bold', rotation='vertical', backgroundcolor='red') plt.ylabel('销量', labelpad=50) ``` 先看结果: ![](https://cdn.geekdigging.comhttps://img.qb5200.com/download-x/data_analysishttps://img.qb5200.com/download-x/data_visualization/zuobiaozhou_3.png) xlabel 中常用的一些参数: * fontsize : 设置字体大小,默认12,可选参数 ['xx-small', 'x-small', 'small', 'medium', 'large','x-large', 'xx-large'] * fontweight : 设置字体粗细,可选参数 ['light', 'normal', 'medium', 'semibold', 'bold', 'heavy', 'black'] * fontstyle : 设置字体类型,可选参数[ 'normal' | 'italic' | 'oblique' ],italic斜体,oblique倾斜 * verticalalignment : 设置水平对齐方式 ,可选参数 : 'center' , 'top' , 'bottom' ,'baseline' * horizontalalignment : 设置垂直对齐方式,可选参数:left,right,center * rotation : (旋转角度)可选参数为:vertical,horizontal 也可以为数字 * alpha : 透明度,参数值0至1之间 * backgroundcolor : 标题背景颜色 * bbox : 给标题增加外框 ,常用参数如下: * boxstyle 方框外形 * facecolor (简写fc)背景颜色 * edgecolor (简写ec)边框线条颜色 * edgewidth 边框线条大小 ## 刻度设置 默认坐标轴是显示 x y 的值,但是也可以自定义显示不同的刻度,这里需要使用到的函数为 `xticks` 和 `yticks` 两个函数: ```python import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] x_data = [2011,2012,2013,2014,2015,2016,2017] y_data = [58000,60200,63000,71000,84000,90500,107000] plt.xticks(x_data, ['2011年','2012年','2013年','2014年','2015年','2016年','2017年']) plt.yticks(y_data) plt.plot(x_data, y_data) plt.show() ``` 结果如下: ![](https://cdn.geekdigging.comhttps://img.qb5200.com/download-x/data_analysishttps://img.qb5200.com/download-x/data_visualization/zuobiaozhou_4.png) 有些时候,由于数据脱敏的需要,我们不要显示刻度,还可以这么写: ```python plt.xticks(x_data, []) plt.yticks(y_data, []) ``` 这样展现出来的图形如下: ![](https://cdn.geekdigging.comhttps://img.qb5200.com/download-x/data_analysishttps://img.qb5200.com/download-x/data_visualization/zuobiaozhou_5.png) 实际上,我们还有更狠的操作,直接关闭坐标轴: ```python plt.axis("off") ``` 结果如下: ![](https://cdn.geekdigging.comhttps://img.qb5200.com/download-x/data_analysishttps://img.qb5200.com/download-x/data_visualization/zuobiaozhou_7.png) ## 范围设置 我们还可以对坐标轴的范围进行设置,如下: ```python import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] x_data = [2011,2012,2013,2014,2015,2016,2017] y_data = [58000,60200,63000,71000,84000,90500,107000] plt.xlim(2011, 2020) plt.ylim(50000, 90000) plt.plot(x_data, y_data) plt.show() ``` 结果如下: ![](https://cdn.geekdigging.comhttps://img.qb5200.com/download-x/data_analysishttps://img.qb5200.com/download-x/data_visualization/zuobiaozhou_6.png) 这里设置在 Y 轴上最大值为 90000 ,那么 2016 和 2017 对应的数据将会无法显示,实际我们从得出的结果图上也能看出这一点。 ## 网格线设置 网格线默认是关闭的,我们可以通过函数 `grid` 修改参数 `b` 来开启网格线,如下: ```python import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] x_data = [2011,2012,2013,2014,2015,2016,2017] y_data = [58000,60200,63000,71000,84000,90500,107000] plt.plot(x_data, y_data) plt.grid(b=True) plt.show() ``` 结果如下: ![](https://cdn.geekdigging.comhttps://img.qb5200.com/download-x/data_analysishttps://img.qb5200.com/download-x/data_visualization/zuobiaozhou_8.png) 我们不仅可开启网格线,还可以通过参数 `axis` 来控制是开启哪个轴的网格线: ```python # 开启 x 轴网格线 plt.grid(b=True, axis='x') # 开启 y 轴网格线 plt.grid(b=True, axis='y') ``` ## 图例设置 图例能对图表起到注释的作用,我们可以通过参数 `label` 对该图表的图例进行设置,示例如下: ```python import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] x_data = [2011,2012,2013,2014,2015,2016,2017] y_data = [58000,60200,63000,71000,84000,90500,107000] plt.plot(x_data, y_data, label = '折线图') plt.bar(x_data, y_data, label = '柱状图') plt.legend() plt.show() ``` 结果如下: ![](https://cdn.geekdigging.comhttps://img.qb5200.com/download-x/data_analysishttps://img.qb5200.com/download-x/data_visualization/tuli.png) ## 图表标题设置 图表标题是用来概括整张图表现的内容的,我们可以通过如下方式设置一张图的标题: ```python plt.title(label='xxx 公司 xxx 产品销量') ``` 结果如下: ![](https://cdn.geekdigging.comhttps://img.qb5200.com/download-x/data_analysishttps://img.qb5200.com/download-x/data_visualization/tubiaobiaoti.png) 本文的内容就到这里了,下一篇我们介绍 Matplotlib 的常用图表的示例,本文的示例代码写的有点乱,就不贴出来了,当然,如果经常看小编写的文章的估计都找得到。 ![](https://cdn.geekdigging.comhttps://img.qb5200.com/download-x/data_analysishttps://img.qb5200.com/download-x/data_visualization/tiaopi.gif) ## 参考 https://blog.csdn.net/The_Time_Runner/articlehttps://img.qb5200.com/download-x/details/89927708

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们