Pyplot 常见绘图方法

前言:Pyplot 是python中matplotlib一个强大的绘图工具,它是其内部一个简单的面向函数式的API,应付平时工作当中简单的绘图工作,其实也不能说其绘制的图比较简单,它也能应付很多复杂的图表,当然没有其另一个面向对象的API这么个性化,但是也可以应付大多数工作了,下图便是用Pyplot绘制出来的图.刚好最近在做机器学习方面的学习,对于模型的评估会用到绘图,这里就整理了一下常见的一些用法;
在这里插入图片描述

准备数据

# 导入必要的包
import numpy as np
import matplotlib.pyplot as plt

# 在0到2这个区间内均匀找出100个数
x = np.linspace(0.,2.,100)
# x 中的每个元素取sin
y = np.sin(x*np.pi)
# 从标准正态分布中随机取100个数
y1 = np.random.randn(100)

plot() 的使用——线型图

# 参数含义 x,y 分别为两轴的数据,ls:代表图中线的格式 c:线的颜色 lw:线宽度,label: 线的标签
plt.plot(x,y,ls="--",c='r',lw=2,label="test_line1")
# 显示图
plt.show()

在这里插入图片描述
线条样式:

字符描述
‘-’实线样式
‘–’短横线样式
‘-.’点划线样式
‘:’虚线样式
‘.’点标记
‘,’像素标记
‘o’圆标记
‘v’倒三角标记
‘^’正三角标记
‘<’左三角标记
‘>’右三角标记
‘1’下箭头标记
‘2’上箭头标记
‘3’左箭头标记
‘4’右箭头标记
‘s’正方形标记
‘p’五边形标记
‘*’星形标记
‘h’六边形标记 1
‘H’六边形标记 2
‘+’加号标记
‘x’X 标记
‘D’菱形标记
‘d’窄菱形标记
‘|’竖直线标记
‘_’水平线标记

以下是颜色的缩写:

字符颜色
‘b’蓝色
‘g’绿色
‘r’红色
‘c’青色
‘m’品红色
‘y’黄色
‘k’黑色
‘w’白色

scatter() 的使用——散点图

# 参数跟上类似
plt.scatter(x,y1,c="b",label="test_scatter1")

在这里插入图片描述

xlabel(),ylabel()设置xy轴的标签

# x轴的标签
plt.xlabel(xlabel="x-axis")
# y轴的标签
plt.ylabel(ylabel="y-axis")

在这里插入图片描述

grid()——设置网格线

# linestyle:设置网格线的格式,':'虚线,'-'实线  color:网格线的颜色 linewidth:线条宽度
# 参数也可以用缩写 ls,c,lw , …
plt.grid(linestyle=":",color="r",linewidth=1)

在这里插入图片描述

axvline(),axhline()——设置垂直水平参考线

# 设置垂直参考线
plt.axvline(x=0.5,ls="--",lw=1,c='b')
# 设置水平参考线
plt.axhline(y=0.5,ls="--",lw=1,c='r')

在这里插入图片描述

axvapan(),axhspan()——设置垂直水平的参考区域

plt.plot(x,y,ls=":",c='r',lw=1,label="test_line1")

# 设置垂直方向参考区域 xmin与xmax设置x轴方向的跨度,facecolor:填充的颜色, alpha:透明度 0~1
plt.axvspan(xmin=0.4,xmax=0.6,facecolor="r",alpha=0.1)
# 设置水平防线参考区域 参数参考垂直方向的解释
plt.axhspan(ymin=0.3,ymax=0.6,facecolor="b",alpha=0.1)

在这里插入图片描述

annotate()——带指向性注释

plt.plot(x,y,ls=":",c='r',lw=1,label="test_line1")
# 参数含义:
# s: 注释的文本
# xy:需要注释图中的哪个坐标
# xytext:文本显示在图中的位置
# weight:文字的样式,这里是加粗
# color:文字的颜色
# arrowprops箭头的样式,以一个词典方式传入参数
plt.annotate(s="max",
             xy=(0.5,1.0),
             xytext=(0.75,0.8),
             weight="bold",
             color="b",
             arrowprops={"arrowstyle":"->","connectionstyle":"arc3","color":"b"})

在这里插入图片描述

text()——非指向性注释

plt.plot(x,y,ls=":",c='r',lw=1,label="test_line1")
# 参数意义类似 x,y 表示注释文本在图像中的位置
plt.text(s="y=sin(x)",x=1.0,y=0.0,weight="bold",color="b")

在这里插入图片描述

title()——添加标题

plt.title("This is title")

在这里插入图片描述

legend()——添加图例

plt.plot(x,y,ls=":",c='r',lw=1,label="test_line1")

# 显示图例 upper:上 lower:下 center:居中 right:右 left:左 空格隔开进行组合
plt.legend(loc="lower left")

在这里插入图片描述

bar()——柱状图

# 准备数据
x = np.arange(0,9)
y = np.random.randint(0,10,9)
# x 轴上的标签
labels = [chr(i+65) for i in range(9)]
# align:对齐方式,color:颜色 tick_label:x属性的标签 hatch:柱上的遮盖样式
plt.bar(x,y,align="center",color="c",tick_label=labels,hatch="/")

在这里插入图片描述

barh()——条形图

# 参数格式和柱状图一样
plt.barh(x,y,align="center",color="c",tick_label=labels,hatch="/")

在这里插入图片描述

hist()——直方图

x = np.random.randint(1,9,100)
bins = np.arange(1,10,1)

# x:数据,bins:x轴上所有的分支,histtype:直方图的类型
plt.hist(x,bins=bins,histtype="bar",color="g",rwidth=1,alpha=0.6)

在这里插入图片描述

pie()——饼状图

labels = [chr(i+65) for i in range(6)]
soldNums = np.random.randint(1,100,6)
# 各个部分的颜色
colors = ["r","g","b"]*2
# autopct:显示百分比的格式
plt.pie(soldNums,colors=colors,labels=labels,startangle=60,autopct="%3.1f%%")

在这里插入图片描述

polar()——极线图

# 每个数据所在度数位置 弧度制
theta = np.linspace(0,2*np.pi,12,endpoint=False)
# 每个位置的值大小
data = 50 * np.random.random(12)

# c:折线颜色,marker:顶点样式,lw:折线宽度,mfc:顶点颜色,ms:顶点大小
plt.polar(theta,data,c="#FFAAFF",lw=2,marker="o",mfc="b",ms=5)

在这里插入图片描述

scatter()——气泡图

x = np.random.rand(100)
y = np.random.rand(100)
c = np.random.rand(100)
#s:气泡的大小,marker:气泡样式,cmap:要将浮点数映射的颜色表 
plt.scatter(x,y,s=np.power(x*10+5*y,3),c=c,marker="o",cmap=mpl.cm.RdYlBu)

在这里插入图片描述

stem()——棉棒图

x = np.linspace(0,7,20)
y = np.random.randn(20)

# linefmt:竖直方向线条格式
# markerfmt:顶点的格式
# basefmt:水平方向线条格式
plt.stem(x,y,linefmt="--",markerfmt="o",basefmt="-")

在这里插入图片描述

boxplot()——箱线图

x = np.random.randn(1000)
plt.boxplot(x)
plt.grid(axis="y",ls=":",color="gray",alpha=0.3)

在这里插入图片描述

errorbar()——误差棒图

x = np.linspace(0.1,0.6,6)
y = np.exp(x)

# fmt:样式
# yerr:y轴方向的误差计算方法
# xerr:x轴方向的误差计算方法
plt.errorbar(x,y,fmt="ro:",yerr=0.1,xerr=0.02)
# 限制x轴的上下限
plt.xlim(0,0.7)

在这里插入图片描述

完整代码

from matplotlib import cm as cm
x = np.linspace(0.5,3.5,100)
y = np.sin(x)
y1= np.random.randn(100)
plt.scatter(x,y1,c="0.25",label="scatter figure")
plt.plot(x,y,ls="--",lw=2,label="plot figure")
for spine in plt.gca().spines.keys():
    if spine == "top" or spine == "right":
        plt.gca().spines[spine].set_color("none")
plt.gca().xaxis.set_ticks_position("bottom")
plt.gca().yaxis.set_ticks_position("left")
plt.xlim(0.0,4.0)
plt.ylim(-3.0,3.0)
plt.ylabel("y_axis")
plt.xlabel("x_axis")
plt.grid(True,ls=":",color="r")
plt.axhline(y=0.0,c="r",ls="--",lw=2)
plt.axvspan(xmin=1.0,xmax=2.0,facecolor="y",alpha=0.3)

plt.annotate("maximum",xy=(np.pi/2,1.0),
            xytext=((np.pi/2)+0.15,1.5),weight="bold",color="r",
            arrowprops={"arrowstyle":"->","connectionstyle":"arc3","color":"b"})


plt.annotate("spines",xy=(0.75,-3),
            xytext=(0.35,-2.25),weight="bold",color="b",
            arrowprops={"arrowstyle":"->","connectionstyle":"arc3","color":"b"})

plt.annotate("",xy=(0,-2.78),
            xytext=(0.4,-2.32),
            arrowprops={"arrowstyle":"->","connectionstyle":"arc3","color":"b"})

plt.annotate("",xy=(3.5,-2.98),
            xytext=(3.6,-2.70),
            arrowprops={"arrowstyle":"->","connectionstyle":"arc3","color":"b"})


plt.text(3.6,-2.70,"'|' is tickline",weight="bold",color="b")
plt.text(3.6,-2.95,"3.5 is ticklabel",weight="bold",color="b")

plt.title("pyplot show test")
plt.legend()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值