第六十八篇 数据可视化matplotlib用法

心得:最近学的东西有些多,路还是需要自己一步步走,用到什么学什么

一、Matplotlib介绍

Matplotlib是一个清大的python绘图和可视化的工具包,数据可视化也是我们数据分析的最重要工具之一,可以帮助我们完成很多操作。

安装:

pip install matplotlib

引用:

import matplotlib.pyplot as plt

二、简单用法

1. 简单用法

import matplotlib.pyplot as plt

plt.plot([1, 2, 3, 4], [1, 2, 3, 4])
plt.ylabel('some numbers') #y轴名称
plt.show()

图像:
第六十八篇 数据可视化matplotlib用法_第1张图片
2. 图像标注
第六十八篇 数据可视化matplotlib用法_第2张图片

import matplotlib.pyplot as plt
import numpy as np

plt.plot([0, 3, 9, 15, 30], linestyle='-.', color='r', marker='o', label="A")
plt.plot([1, 3, 16, 23, 30], [30, 23, 13, 25, 30], label='B')
plt.title("Title")  # 标题
plt.xlabel('X')  # x轴名称
plt.ylabel('Y')  # y轴名称

plt.xticks(np.arange(0, 30, 2))  # x轴刻度
plt.xlim(-0.2, 10, 2)  # x轴范围
plt.legend()  # 曲线图例
plt.show()

第六十八篇 数据可视化matplotlib用法_第3张图片
3.绘制sin和cos图像
np.arange(start,stop,step)
函数返回一个有终点和起点的固定步长的排列,如[1,2,3,4,5],起点是1,终点是5,步长为1。

x = np.arange(0, 20, 0.01)
plt.plot(x, np.sin(x), 'r-', x, np.cos(x), 'b--')
plt.axis([0,20,-3,3])
plt.show()

第六十八篇 数据可视化matplotlib用法_第4张图片
4. plt.grid(True) # 设置网格线

x = np.arange(0, 20, 0.01)
plt.plot(x, x**2)
plt.grid(True)  # 设置网格线
plt.show()

第六十八篇 数据可视化matplotlib用法_第5张图片

三、其他类型图

  1. 柱状图
# 柱状图
import matplotlib.pyplot as plt
data = [12,34,23,54]
labels = ['Jan','Fed','Mar','Apr']
plt.xticks([0,1,2,3],labels)  # 设置x轴刻度
plt.bar([0,1,2,3],data)
plt.show()

第六十八篇 数据可视化matplotlib用法_第6张图片

  1. 横向柱状图
import matplotlib.pyplot as plt
# 横向柱状图
data = [12,34,23,54]
labels = ['Jan','Fed','Mar','Apr']
plt.yticks([0,1,2,3],labels)
plt.barh([0,1,2,3],data)    

第六十八篇 数据可视化matplotlib用法_第7张图片

  1. 饼图
import matplotlib.pyplot as plt
# 饼图
plt.pie([10,20,30,40],labels=list('abcd'),autopct="%.2f%%",explode=[0.1,0,0,0])  # 饼图
plt.axis("equal")
plt.show()

第六十八篇 数据可视化matplotlib用法_第8张图片

  1. 散点图
# 散点图
import matplotlib.pyplot as plt
import numpy as np
import random
x = np.random.randn(100)
y = np.random.randn(100)
plt.scatter(x,y)
plt.show()

第六十八篇 数据可视化matplotlib用法_第9张图片
5. 直方图
第六十八篇 数据可视化matplotlib用法_第10张图片

fig,(ax0,ax1) = plt.subplots(nrows=2,figsize=(9,6))     #在窗口上添加2个子图
sigma = 1   #标准差
mean = 0    #均值
x=mean+sigma*np.random.randn(10000)   #正态分布随机数
ax0.hist(x,bins=40,normed=False,histtype='bar',facecolor='yellowgreen',alpha=0.75)   #normed是否归一化,histtype直方图类型,facecolor颜色,alpha透明度
ax1.hist(x,bins=20,normed=1,histtype='bar',facecolor='pink',alpha=0.75,cumulative=True,rwidth=0.8) #bins柱子的个数,cumulative是否计算累加分布,rwidth柱子宽度
plt.show()  #所有窗口运行

第六十八篇 数据可视化matplotlib用法_第11张图片

四、保存到文件

保存文件类型根据文件扩展名推断出来的

plt.savefig('123.pdf')

第六十八篇 数据可视化matplotlib用法_第12张图片

五、遇到问题

保存图片时,有时会遇到问题,将导入的类型改为Agg就可以正常保存

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

参考:
xHibiki
https://www.jianshu.com/p/da385a35f68d
官网链接

你可能感兴趣的:(数据分析)