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

人生苦短,我用 Python
前文传送门:
小白学 Python 数据分析(2):Pandas (一)概述
小白学 Python 数据分析(3):Pandas (二)数据结构 Series
小白学 Python 数据分析(4):Pandas (三)数据结构 DataFrame
小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据
小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择
小白学 Python 数据分析(7):Pandas (六)数据导入
小白学 Python 数据分析(8):Pandas (七)数据预处理
小白学 Python 数据分析(9):Pandas (八)数据预处理(2)
小白学 Python 数据分析(10):Pandas (九)数据运算
小白学 Python 数据分析(11):Pandas (十)数据分组
小白学 Python 数据分析(12):Pandas (十一)数据透视表(pivot_table)
小白学 Python 数据分析(13):Pandas (十二)数据表拼接
小白学 Python 数据分析(14):Pandas (十三)数据导出
小白学 Python 数据分析(16):Matplotlib(一)坐标系
坐标轴标题设置
各位同学好,我又来了,本文给大家带来的是有关 Matplotlib 的一些基础操作。

在前一篇文章中,我们介绍了如何使用 Matplotlib 绘制坐标系,本文我们接着介绍 Matplotlib 。
先看一个简单的示例:
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()
结果如下:

好像哪里不太对的样子,横轴和数轴的标题没有显示出来,看一下程序运行,没有报错,但是报出来一个警告:
RuntimeWarning: Glyph 24180 missing from current font.
这个警告的含义是 plt 画图是找不到字体,那么这里我们手动设置一下字体:
plt.rcParams['font.sans-serif']=['SimHei']
完整的样例代码如下:
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()
结果如下:

这下显示正常了。
我们还可以通过参数 labelpad 设置标题到坐标轴的距离,这里为了演示效果设置的距离稍微大了点:
plt.xlabel('年份', labelpad=50)
plt.ylabel('销量', labelpad=50)
结果如下:

我们还可以通过参数对文本的相关属性进行设置,下面看下一些常用的设置参数:
plt.xlabel('年份', labelpad=50, fontsize='xx-large', fontweight='bold', rotation='vertical', backgroundcolor='red')
plt.ylabel('销量', labelpad=50)
先看结果:

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 两个函数:
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()
结果如下:

有些时候,由于数据脱敏的需要,我们不要显示刻度,还可以这么写:
plt.xticks(x_data, [])
plt.yticks(y_data, [])
这样展现出来的图形如下:

实际上,我们还有更狠的操作,直接关闭坐标轴:
plt.axis("off")
结果如下:

范围设置
我们还可以对坐标轴的范围进行设置,如下:
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()
结果如下:

这里设置在 Y 轴上最大值为 90000 ,那么 2016 和 2017 对应的数据将会无法显示,实际我们从得出的结果图上也能看出这一点。
网格线设置
网格线默认是关闭的,我们可以通过函数 grid 修改参数 b 来开启网格线,如下:
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()
结果如下:

我们不仅可开启网格线,还可以通过参数 axis 来控制是开启哪个轴的网格线:
# 开启 x 轴网格线
plt.grid(b=True, axis='x')
# 开启 y 轴网格线
plt.grid(b=True, axis='y')
图例设置
图例能对图表起到注释的作用,我们可以通过参数 label 对该图表的图例进行设置,示例如下:
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()
结果如下:

图表标题设置
图表标题是用来概括整张图表现的内容的,我们可以通过如下方式设置一张图的标题:
plt.title(label='xxx 公司 xxx 产品销量')
结果如下:

本文的内容就到这里了,下一篇我们介绍 Matplotlib 的常用图表的示例,本文的示例代码写的有点乱,就不贴出来了,当然,如果经常看小编写的文章的估计都找得到。

参考
https://blog.csdn.net/The_Time_Runner/article/details/89927708
小白学 Python 数据分析(17):Matplotlib(二)基础操作的更多相关文章
- 小白学 Python(17):基础数据类型(函数)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(18):基础文件操作
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(19):基础异常处理
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python 数据分析(18):Matplotlib(三)常用图表(上)
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- 小白学 Python 数据分析(19):Matplotlib(四)常用图表(下)
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- 小白学 Python 数据分析(16):Matplotlib(一)坐标系
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- 小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据
在家为国家做贡献太无聊,不如跟我一起学点 Python 人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Panda ...
- 小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- 小白学 Python 数据分析(13):Pandas (十二)数据表拼接
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
随机推荐
- 浏览器证书问题,chorm,ie,edge,safari都会去读系统证书,firefox例外
坑爹 没想过浏览器兼容的问题. 为系统安装用户证书后, firefox一直无法连接 提示 连接 www.httpsserver.com:8985 时发生错误. SSL 对等端无法协商出一个可接受的安全 ...
- 合并cookie,提取json数据
发送的第3个请求需要前两个请求的cookie,需要对cookie进行合并 发送的请求数据来自于json数据中的某个键值. 这里是删除所有的对话主题目录,每一个目录有一个id,发起删除对话主题目录的请求 ...
- 吴裕雄--天生自然python学习笔记:Python3 面向对象
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的. 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集 ...
- JS数字千分
JS数字千分: 1.例子:1000--->1,000 2.实现如下: salesToFormat: function (num) { var num = (num || 0).toString( ...
- 传统if 从句子——以条件表达式作为if条件
传统if 从句子——以条件表达式作为 if条件if [ 条件表达式 ]then command command commandelse command commandfi 条件表达式 文件表达式 ...
- 奇葩念头:微信能取代WP应用吗
墙倒众人推,原本是再平常不过的事,但每次发生都显得特别凄凉--就和楼市买房买涨不买跌一样,在互联网行业,用户数量越多的产品或服务,就会越受到行业和大众青睐.而越是小众的产品或服务,虽然是要走 ...
- Socket.io 入门 - Renyi的博客
Socket.io Vue 中使用 NPM 安装 npm install vue-socket.io --save npm install --save socket.io-client 引用 详情 ...
- wxpython(2)--按钮,位图按钮,滑动块,微调控制器
本文介绍按钮,位图按钮,滑动块,微调控制器**.. 按钮 基本按钮 创建一个按钮,绑定点击事件,点击后修改Label 123456789101112131415161718 import wx cla ...
- Nginx_安装
1. 安装步骤 上传nginx上传nginx安装包到linux 安装gcc 1 yum -y install gcc-c++ gcc 查看是否安装gcc: 1 gcc -v 安装依赖库 1 yum - ...
- 基于webhook方案的Git自动部署方案
之前已经用Git实现了自己博客的提交自动部署,并自动提交到GitHub和coding以备不时之需.平时项目代码都托管在Coding或者GitHub上,也已经用上了coding提供的webhook功能, ...