Python--matplotlib入门 详细教程(一)

1.文章概述

matplotlib库是Python中绘制二维、三维图表的数据可视化工具,主要特点有

  • 使用简单的绘图语句实现复杂的绘图效果
  • 以交互式操作实现逐渐精细的图形效果
  • 使用嵌入式的LaTex输出具有印刷级别的图表、科学表达式和符号文本
  • 对图表的组成元素实现精细化控制

因为它具有丰富的绘图类型、通过简单的几行代码,便可以画出精美的图形,和种种便利,因此一直被用于python数据分析中,

2.简单示例

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
x = np.arange(10)
y = np.random.rand(10)

plt.plot(x,y,color='r')
plt.show()

结果展示
在这里插入图片描述
但往往我们在绘图时的图形往往不是这样简单的。

3.图表的组成元素

基本图表函数

函数作用
plot()展示变量的趋势变化
grid()绘制刻度线的网格线
title()添加图形内容的标题
xlim()设置x轴的数值显示范围
ylim()设置y轴的数值显示范围
xlabel()设置x轴的标签文本
ylabel()设置y轴的标签文本
axhline绘制平行于x轴的水平参考线
axvline绘制平行于y轴的水平参考线
legend()标示不同图形的文本标签图例
mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False
x1 = np.linspace(0.05,10,1000)
y1 = np.cos(x1)

//   x1,y1轴上的数值,ls 图的线条分割
//   lw 折线图的线条宽度, label 标记图形的标签文本
plt.plot(x1,y1,ls="-",c='y',lw=2,label="plot figure")

//  grid()绘制刻度线的网格线
//  linstyle()网格线的线条风格   color()网格线的线条颜色
plt.grid(linestyle=":",color="k")

//添加图形内容的标题
plt.title("我是标题设置",fontsize=18)


//   xlim(xmin,xmax)     x轴的数值显示范围
//   xmin:x轴的最小值   xmax:x轴的最大值
//   ylim(xmin,xmax)同理
plt.xlim([0,10])
plt.ylim([-1.25,1.25])

//   xlabel(string)
//   string:标签文本内容,fontsize:设置字体大小
//   ylabel()同理
plt.xlabel("X-轴",fontsize=15)
plt.ylabel("Y-轴",fontsize=15)

//绘制 x,y 轴的水平参考线
// x,y 水平参考线的出发点, c参考线的线条颜色, ls线条风格, lw线条宽度
plt.axhline(y=-0.5,c='r',ls='--',lw=2)  # x轴
plt.axvline(x=2.0,c='r',ls='--',lw=2)  # y轴

//  loc:图例在图中的地理位置,取值可查看帮助
plt.legend(loc="best")

结果展示
在这里插入图片描述

axvspan()函数

axvspan()函数---绘制垂直于x轴的参考区域, 根据平移性, y轴同理axhspan()
xmin参考区域的起始位置(左侧)
xmax终止位置(右侧)
facecolor参考区域的填充颜色
alpha 填充区域颜色透明度
//  x,y轴上的数值
// ls 图的线条分割
// lw 折线图的线条宽度, label 标记图形的标签文本
plt.plot(x1,y1,ls="-",c='y',lw=2,label="plot figure")

//绘制刻度线的网格线
// linstyle()网格线的线条风格   color()网格线的线条颜色
plt.grid(linestyle=":",color="k")

plt.title("我是标题设置",fontsize=18)

plt.xlim([0,10])
plt.ylim([-1.25,1.25])

plt.xlabel("X-轴",fontsize=15)
plt.ylabel("Y-轴",fontsize=15)


plt.axvspan(xmin=4.0,xmax=5.0,facecolor="g",alpha=0.3)
plt.axhspan(ymin=0.0,ymax=0.25,facecolor="r",alpha=0.3)


plt.legend(loc="best")

在这里插入图片描述

annotate()函数

annotate()    添加图形内容细节的指向型注释文本
string:       图形内容的注释文本
xy:           被注释文本的位置坐标
xytext:       注释文本的位置坐标
weight:       注释文本的字体粗细风格
color:        注释文本的字体颜色
arrowprops:   指示被注释内容的箭头的属性字典
//  x,y轴上的数值
// ls 图的线条分割
// lw 折线图的线条宽度, label 标记图形的标签文本
plt.plot(x1,y1,ls="-",c='y',lw=2,label="plot figure")

//绘制刻度线的网格线
// linstyle()网格线的线条风格   color()网格线的线条颜色
plt.grid(linestyle=":",color="k")

plt.title("我是标题设置",fontsize=18)

plt.xlim([0,10])
plt.ylim([-1.25,1.25])

plt.xlabel("X-轴",fontsize=15)
plt.ylabel("Y-轴",fontsize=15)

plt.annotate("最大值",
             xy=(6,1.0),
             xytext = (2.2,.6),
             weight="bold",
             color="g",
             fontsize=18,
             arrowprops=
             dict(arrowstyle="->",connectionstyle="arc3",color="r")
            )


plt.legend(loc="best")

在这里插入图片描述

text()函数

函数text()--- 添加图形内容细节的无指向型注释文本
plt.text(x,y,string,weight-"bold",color="b")

x:        注释文本所在的横坐标
y:        纵坐标
string:   注释文本内容
weight:   文本内容的粗细风格
color:    文本内容的字体颜色
//  x,y轴上的数值
// ls 图的线条分割
// lw 折线图的线条宽度, label 标记图形的标签文本
plt.plot(x1,y1,ls="-",c='y',lw=2,label="plot figure")

//绘制刻度线的网格线
// linstyle()网格线的线条风格   color()网格线的线条颜色
plt.grid(linestyle=":",color="k")

plt.title("我是标题设置",fontsize=18)

plt.xlim([0,10])
plt.ylim([-1.25,1.25])

plt.xlabel("X-轴",fontsize=15)
plt.ylabel("Y-轴",fontsize=15)


plt.text(3.0,0.09,"y=cos(x)",weight="bold",color="b",fontsize=16)


plt.legend(loc="best")

在这里插入图片描述

4.subplot()–创建画板

子区函数调用签名
subplot(numRows,nuCols,plotNum),即subplot(CRN)
C标示行
R表示列
N子区位置

简单绘图区域:

plt.figure(figsize=(12,8))

plt.subplot(221)
b_x = [1,2,3,4,5,6,7,8]
b_y = [3,1,4,5,8,9,7,2]
plt.barh(b_x,b_y,align="center",color="c",tick_label=["q","a","c","e","r","j","b","p",],hatch="/")
plt.xlabel("箱子编号")
plt.ylabel("箱子重量(kg)")


plt.subplot(222)
a = np.random.randn(100)
b = np.random.randn(100)
plt.scatter(a,b,s=np.power(10*a+20*b,2),
           c=np.random.randn(100),
           cmap=mpl.cm.RdYlBu,
           marker="o")


plt.subplot(223)
plt.subplot(224)

plt.show()

在这里插入图片描述

复杂绘图区域

subplot2grid()函数
subplot2grid(GridSpec,CurSpec,colspan=1,rowspan=1)
设置网格,选中网格,确定选中行列区域数量,编号从0开始
def f(t):
    return np.exp(-t) * np.cos(2*np.pi*t)

a = np.arange(0.0,5.0,0.02) 


plt.figure(figsize=(12,8))
plt.subplot2grid((3,3),(0,0),colspan=3)
plt.plot(a,f(a))

plt.subplot2grid((3,3),(1,0),colspan=2)
plt.plot(a,np.cos(2*np.pi*a),'r--')

plt.subplot2grid((3,3),(1,2),colspan=2)
plt.subplot2grid((3,3),(2,0))
plt.subplot2grid((3,3),(2,1))

在这里插入图片描述
下一篇:Matlotlib常用图表绘图实例教程及参数说明(二)

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明总有

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值