数据可视化之matplotlib-01
1. matplotlib简介和安装:
1.1 简介
matplotlib是python的一个数据可视化库, 可以画很多的图表, 像折线图, 柱状图…
非常的实用, 主要是简单易用, 在我们分析数据的趋势和查看数据的走向的时候, 几行代码就可以画出一个简单的图形出来
1.2 安装
pip install matplotlib
2. matplotlib的用法和实例展示(代码+图片)
首先来看一个简单的实际案例
import matplotlib
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import style
from numpy import random
import pandas as pd
# 解决中文显示方块问题
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False
# 添加图例和设置线型及颜色
# linewidth - 线宽
# label - 图例名字
plt.plot([1,2,3,4], [2,4,6,8], linewidth=1.0, label='Line')
plt.ylabel('Numbers')
plt.legend()
plt.ylim(0, 10)
plt.show()
-
这就是一条简单的直线, plt.plot()用来设置画图的一些参数, 比如数据, 图的形状, 线宽…
-
接下来介绍一下常用的参数
3. matplotlib的API介绍
- plt.plot() # 绘制图形
- 第一个参数默认是X轴数据
- 第二个参数默认是Y轴数据
- linewidth: 表示画图的线宽
- label: 图例的名字, 再调用plt.legend()就会在图表上显示图例名字, 就是图片右上角的Line
- color: 线条颜色
- ‘r’: 红色
- ‘g’: 绿色
- ‘b’: 蓝色
- ‘c’: 青色
- ‘m’: 品红
- ‘y’: 黄色
- ‘k’: 黑色
- ‘w’: 白色
- plt.show() # 图形显示, 不用notebook的话, 不调用该函数, 不会显示图像
- plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
- num:图像编号或名称,数字为编号 ,字符串为名称
- figsize:指定figure的宽和高,单位为英寸;
- dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80, 1英寸等于2.5cm,A4纸是 21*30cm的纸张
- facecolor:背景颜色
- edgecolor:边框颜色
- frameon:是否显示边框
- plt.title() # 设置图表标题
- 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边框线条大小
- plt.xlabel(‘X axis’) # 设置X轴名字
- plt.ylabel(‘Y axis’) # 设置Y轴名字
- plt.legend() # 显示图例, 可显示在plot()中设置的label
- plt.scatter() # 绘制散点图, 参考plt.plot()传参
- plt.grid(True) # 出现网络
- plt.subplot(figsize=(10, 6)) # 绘制子图
- figsize: 指定子图的大小
- plt.bar() # 绘制柱状图, 参考plt.plot()传参
这里只介绍一些常用的API和对应的传参, 更加具体的可以移步官网查看
官网地址: https://matplotlib.org/stable/contents.html
菜鸟教程网站地址: https://www.runoob.com/matplotlib/matplotlib-tutorial.html
推荐菜鸟教程, 因为它是中文的, 对入门的同学会很友好
但是菜鸟的教程肯定是没有官网那么全的, 所以入门之后进阶, 推荐看官网的
4. 总结
总的来说, maplotlib画图是比较简单的, 在需要快速分析一下数据表现的时候, 就很方便;
接下来会介绍到怎么用matplotlib绘制折线图, 直方图, 散点图
不足的地方就是matplotlib画图画出来的图表在美观方面稍微有所欠缺.所以在画热力图的时候, 一般会用seaborn.后面会介绍到