python数据分析复盘——数据分析相关库之Matplotlib

1.Matplotlib简介

1.1 概念

  • matplotlib是一个2D作图库,提供了方便的接口,使用户可以轻松的掌控图形的格式。
  • Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发,matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式

1.2 基础用法

import matplotlib.pyplot as plt
plt.plot([5,2,1,2,5])
plt.ylabel("y label")
plt.xlabel("x label")
plt.title("Title")
plt.show()

这里写图片描述

2.绘图区域

这里写图片描述

import matplotlib.pyplot as plt
#plt.subplot(211)表示划分为2行1列的区域,当前为第一个区域。区域数从上到下从左到右递增。

plt.subplot(211)
plt.plot([5,2,1,2,5])
plt.ylabel("y label")
plt.xlabel("x label")
plt.title("Title11")

plt.subplot(212)
plt.plot([9,6,2,6,9])
plt.ylabel("y label")
plt.xlabel("x label")
plt.title("Title 12")

plt.show()

这里写图片描述


3.pyplot的plot()函数

3.1 基础使用

这里写图片描述

import numpy as np
a = np.arange(10)
plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5)
plt.title('more(x,y,format_string)')
plt.show()

这里写图片描述


3.2 控制曲线的格式字符串(format_string)

由颜色字符、风格字符和标记字符组成:
这里写图片描述

这里写图片描述

#效果图如作右上
import numpy as np
a = np.arange(10)
plt.plot(a,a*1.5,':',a,a*2.5,'-',a,a*3.5,'-.',a,a*4.5)
plt.show()

这里写图片描述

#混合格式字符,不用考虑先后
import numpy as np
a = np.arange(10)
plt.plot(a,a*1.5,':yo',a,a*2.5,'rv-',a,a*3.5,'cx-.',a,a*4.5,'md-')
plt.title('mixing format_strings')
plt.show()

这里写图片描述

4.pyplot中文显示

两种方式:
1.设置全局字体,应用在全部文字上
2.在设置标题等文字时修改foot相关属性,局部应用

import numpy as np
import matplotlib
a = np.arange(10)
#法1设置支持中文的字体(全局应用)

# #rcparams属性 font.family font.style font.size 
matplotlib.rcParams['font.family']='SimHei'

#polt必须在rcParams之后,否则字体设置无效
plt.plot(a,a*1.5,':yo',a,a*2.5,'rv-',a,a*3.5,'cx-.',a,a*4.5,'md-')
plt.title('通过rcParams设置字体后')
plt.xlabel("全局字体")
plt.ylabel("局部设置,局部应用",fontproperties='YouYuan',fontsize=20)

plt.show()

这里写图片描述


5.专业显示(更多的说明)

#除了基础的,标题XY标签、字体和颜色
#还增加了数学字符、注释
a=np.arange(0.0,5.0,0.02)
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=15,color='green')
plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=15,color='green')

            #    ↓↓↓↓↓↓↓主要看下面↓↓↓↓↓↓↓
#用$$把含有数学字符的公式包起来,就可以显示出对应的字符。 
plt.title('正弦波实例 $y=cos(2\pi x)$',fontproperties='SimHei',fontsize=25)
#在对应坐标显示文本
plt.text(3,1,'$\mu=100$',fontsize=15)

#显示文本指向对应坐标
plt.annotate(r'$\mu=100$',xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor='black',shrink=0.1,width=2))
plt.axis([-1,6,-2,2])
plt.grid(True)
plt.show()

plt.text
plt.annotate(s,xy=arrow_crd,xytext=text_crd,arrowprops=dict)

这里写图片描述

6.基础图表函数


import matplotlib.pyplot as plt
import numpy as np
# 1.饼图
sizes=[15,30,45,10]
explode=(0,0.1,0,0)
labels='Frogs','Hogs','Dogs','Logs'

plt.pie(sizes,explode,labels,autopct='%1.1f%%',shadow=False,startangle=90) #autopct表示百分数方式percentage
plt.axis('equal') #正面饼图
plt.show()

# 2.直方图
np.random.seed(0)
mu,sigma=100,20
a=np.random.normal(mu,sigma,size=100)
plt.hist(a,bins=50,normed=1,histtype='stepfilled',facecolor='c',alpha=0.75)
#bins,数据等分的量,就是条形的数量
#normed为真(1)显示的是频数
#alpha 为灰度值
plt.title('直方图',fontproperties='YouYuan',fontsize=20)
plt.show()

# 3.极坐标图

N = 10 #数量
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
radii = 10 * np.random.rand(N)
width = np.pi / 2 * np.random.rand(N)

#面向对象作图
ax = plt.subplot(111, projection='polar')
bars = ax.bar(left=theta, height=radii, width=width, bottom=0.0)
# left:起始绘制位置
# height:bar的高度
# width:角度
# Use custom colors and opacity
for r, bar in zip(radii, bars):
    bar.set_facecolor(plt.cm.viridis(r / 10.))
    bar.set_alpha(0.5)
plt.show()

# 4.散点图
# matplot推荐使用该方法绘制(面向对象)
fig,ax=plt.subplots()
ax.plot(10*np.random.randn(100),10*np.random.randn(100),'o')
ax.set_title('面向对象绘制散点图',fontproperties='YouYuan',fontsize=20)
plt.show()

这里写图片描述
更多图表请参考:

1.Matplotlib Gallery
2.Matplotlib Examples


本文大纲和部分内容均摘自:Python数据分析与展示

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值