python-matplotlib数据可视化

准备数据

import matplotlib.pyplot as plt
import numpy as np

简单函数用法

函数plot()—展现变量的趋势变化

plt.plot(x,y,ls="",lw=2,label="plot figure")
x:x轴上的数值
y:y轴上的数值
ls:折线图上的线条风格
lw:折线图的线条宽度
label:标记图形内容的文本标签
#在0.05到10之间均匀地取100个数
x=np.linspace(0.05,10,1000)
y=np.cos(x)

plt.plot(x,y,ls="-",lw=2,label="plot gigure")
plt.legend()
plt.show()

在这里插入图片描述

函数scatter()—寻找变量之间的关系

plt.plot(x,y,ls="-",lw=2,label="plot gigure")
x:x轴的数值
y:y轴的数值
c:散点图中的标记的颜色
label:标记图形内容的标签文本
x=np.linspace(0.05,10,1000)
y=np.random.rand(1000)

plt.scatter(x,y,label="scatter figure")
plt.legend()
plt.show()

在这里插入图片描述

函数xlim()—设置x轴的数值显示范围

plt.xlim(xmin,xmax)
xmin:x轴上最小值
xmax:x轴上最大值
平移性:plt.ylim(ymin,ymax)
x=np.linspace(0.05,10,1000)
y=np.random.rand(1000)

plt.scatter(x,y,label="scatter figure")
plt.legend()

plt.xlim(0.05,10)
plt.ylim(0,1)

plt.show()

在这里插入图片描述

函数xlabel()—设置x轴的标签文本

plt.xlabel(string)
string:标签文本内容
平移性:plt.ylabel(string)
x=np.linspace(0.05,10,1000)
y=np.random.rand(1000)

plt.scatter(x,y,label="scatter figure")
plt.xlabel("x-axis")
plt.ylabel("y-axis")
plt.legend()
plt.show()

在这里插入图片描述

函数grid()—绘制刻度线的网格线

plt.grid(linestyle=":",color="r")
linestyle:网格线的线条风格
color:网格线的线条颜色
x=np.linspace(0.05,10,1000)
y=np.random.rand(1000)

plt.scatter(x,y,label="scatter figure")
plt.legend()

plt.grid(linestyle=":",color="r")
plt.show()

在这里插入图片描述

函数axhline()—绘制平行于x轴的参考线

plt.axhline(y=0.0,c="r",ls="--".lw=2)
y:水平参考线的出发点,
c:参考线的线条颜色
ls:参考线的线条风格
lw:参考线的宽度
平移性:axvline()
x=np.linspace(0.05,10,1000)
y=np.sin(x)

plt.plot(x,y,ls="-.",lw=2,c="r",label="plot figure")
plt.legend()

plt.axhline(y=0.0,c="r",ls="--",lw=2)
plt.axvline(x=4.0,c="r",ls="--",lw=2)

plt.show()

在这里插入图片描述

函数axcspan()—绘制垂直于x轴的参考区域

plt.axvspan(xmin=4.0,xmax=6.0,facecolor="y",alpha=0.3)
xmin:参考区域的起始位置
xmax:参考位置的终止区域
facecolor:参考位置的填充颜色
alpha:参考区域填充颜色的透明度
平移性:axhspan()
x=np.linspace(0.05,10,1000)
y=np.sin(x)

plt.plot(x,y,ls="-.",lw=2,c="r",label="plot figure")

plt.legend()

plt.axvspan(xmin=4.0,xmax=6.0,facecolor="y",alpha=0.3)
plt.axhspan(ymin=0.0,ymax=0.5,facecolor="y",alpha=0.3)

plt.show()

在这里插入图片描述

函数annotate()—添加图形内容细节的指向性注释文本

在这里插入代码片

plt.annotate(“string”,
xy=(x,y),
xytext=((np.pi/2)+1.0,.8),
weight=“bold”,
color=“b”,
arrowprops=dict(arrowstyle="->",connectionstyle=“arc3”,color=“b”)
)
string:图形内容的注释文本
xy:备注是文本的坐标位置
xytext:注释文本的位置坐标
weight:注释文本的字体粗细风格
color:注释文本的字体风格
arrowprops:只是被注释内容的箭头的属性字典

x=np.linspace(0.05,10,1000)
y=np.sin(x)

plt.plot(x,y,ls="-.",lw=2,c="r",label="plot figure")

plt.legend()

plt.annotate("maximum",
            xy=(np.pi/2,1.0),
            xytext=((np.pi/2)+1.0,.8),
             weight="bold",
             color="b",
             arrowprops=dict(arrowstyle="->",connectionstyle="arc3",color="b")
            )

plt.show()

函数text()—添加图形内容细节的无指向性注释文本

plt.annotate(xy=(np.pi/2,1.0),
            xytext=((np.pi/2)+1.0,.8),
             weight="bold",
             color="b",
             arrowprops=dict(arrowstyle="->",connectionstyle="arc3",color="b")
            )
xy:备注是文本的坐标位置
xytext:注释文本的位置坐标
weight:注释文本的字体粗细风格
color:注释文本的字体风格

函数title()—添加图形内容的标题

plt.title(string)
string:图形的标题文本

函数legend()—表示不同图形的文本标签图例

plt.legend(loc="lower left")
loc:图例在图中的地理位置

使用统计函数绘制简单图形

函数bar()—用于绘制柱状图

plt.bar(x,y)
x:表示在x轴上的定性数据类别
y:每种定性数据的类别的数量
x=[1,2,3,4,5,6,7,8,9]
y=[6,3,4,5,9,2,4,1,7]

plt.bar(x,y,align="center",color="c",tick_label=["a","b","c","d","e","f","g","l","i"],hatch="/")

plt.xlabel("箱子编号")
plt.ylabel("箱子重量")

plt.show()

在这里插入图片描述

函数barh()—用于绘制条形图

plt.barh(x,y)
x:标示在y轴上的定型数据的类别
y:每种定性数据的类别的数量
x=[1,2,3,4,5,6,7,8,9]
y=[6,3,4,5,9,2,4,1,7]

plt.barh(x,y,align="center",color="c",tick_label=["a","b","c","d","e","f","g","l","i"],hatch="/")

plt.xlabel("箱子编号(kg)")
plt.ylabel("箱子重量")

plt.show()

在这里插入图片描述

函数hist()—用于绘制直方图

plt.hist(x)
x:在x轴上绘制箱体的定量数据输入值
boxweight=np.random.randint(0,10,100)
x=boxweight

bins=range(0,11,1)

plt.hist(x,
        bins=bins,
        color="g",
        histtype="bar",
         rwidth=1,
        alpha=0.6)

plt.xlabel("箱子编号(kg)")
plt.ylabel("箱子重量")

plt.show()

在这里插入图片描述

函数pie()—用于绘制饼图

plt.pie(x)
x:定性数据的不同类别的百分比
kinds=["简易箱","保温箱","行李箱","密闭箱"]
colors=["#e41a1c","#377eb8","#4daf4a","#984ea3"]
soldNums=[0.05,0.45,0.15,0.35]

plt.pie(soldNums,
        labels=kinds,
        autopct="%3.lf%%",
        startangle=60,
        colors=colors)
plt.title("不同类型箱子的销售数量占比")
plt.show()

在这里插入图片描述

函数polar()—用于绘制极线图

plt.polar(theta,r)
theta:每个标记所在射线与极径的夹角
r:每个标记点到原点的距离
barSlices =12
theta = np.linspace (0.0, 2*np.pi, barSlices,endpoint=False)
r=30*np.random.rand(barSlices)
plt.polar(theta, r,color="chartreuse",linewidth=2,marker="*",mfc="b",ms=10)

plt.show ()

在这里插入图片描述

函数scatter()—用于绘制气泡图

plt.scatter(x,y)
x:x轴上的数值
y:x轴上的数值
s:散点标记的颜色
camp:将浮点数映射成颜色的颜色映射表
a=np.random.randn(100)
b=np.random.randn (100)
#colormap :RdYlBu
plt.scatter(a,b,
            s=np.power(10*a+20*b,2),
            c=np .random.rand(100),
            cmap=mpl.cm.RdYlBu,
            marker="o")
plt.show ()

在这里插入图片描述

函数stem()—用于绘制棉棒图

函数功能:绘制离散有序数据。
调用签名:plt.stem(x,y)。
参数说明
x:指定棉棒的x轴基线上的位置。y:绘制棉棒的长度。
linefmt:棉棒的样式。
markerfmt:棉棒末端的样式。
basefmt:指定基线的样式。
x=np.linspace(0.5,2*np.pi,20)
y=np.random.randn(20)
plt.stem(x, y, linefmt="-.",markerfmt="o", basefmt="-")
plt.show ()

在这里插入图片描述

函数boxplot()—用于绘制箱线图

plt.boxplot(x)
x:绘制箱线图的输入数据
x=np.random.randn(1000)
plt.boxplot (x)
plt.xticks([1],["随机数生成器AlphaRM"])
plt.ylabel("随机数值")
plt.title("随机数生成器抗干扰能力的稳定性")
plt.grid (axis="y",ls=":",lw=1,color="gray",alpha=0.4)
plt.show ()

在这里插入图片描述

函数errorbar()—用于绘制误差棒图

plt.errbar(x,y,yerr=a,xerr=b)
x:数据点的水平方向
y:数据点的垂直方向
yerr:y轴方向的数据点的误差计算方法
xerr:x轴方向的数据点的误差计算方法
x=np.linspace(0.1,0.6,6)
y=np.exp(x)
plt.errorbar(x,y,fmt="bo:",yerr=0.2, xerr=0.02)
plt.xlim(0,0.7)
plt.show()

在这里插入图片描述

绘制统计图形

横向柱状图

x=[1,2,3,4,5]
y=[6,10,4,5,1]

plt.bar(x,y,align="center",color="b",tick_label=["A","B","C","D","E"],alpha=0.6)
#set x,yaxis labelplt.xlabel("测试难度")plt.ylabel("试卷份数")
#set yaxis grid
plt.grid(True, axis="y",ls=":", color="r", alpha=0.3)
plt.show()

在这里插入图片描述

纵向柱状图


x=[1,2,3,4,5]
y=[6,10,4,5,1]

plt.barh(x,y,align="center",color="b",tick_label=["A","B","C","D","E"],alpha=0.6)
#set x,yaxis labelplt.xlabel("测试难度")plt.ylabel("试卷份数")
#set yaxis grid
plt.grid(True, axis="x",ls=":", color="r", alpha=0.3)
plt.show()

在这里插入图片描述

横向堆积图

# some simple data
x=[1,2,3,4,5]
y=[6,10, 4,5,1]
y1=[2,6,3,8,5]
#create bar
plt.bar(x,y,align="center", color="#66c2a5",tick_label=["A","B","C","D","E"],label="班级A")
plt.bar (x,y1,align="center",bottom=y, color="#8da0cb", label="班级B")
#set x,y_axis label
plt.xlabel("测试难度")
plt.ylabel("试卷份数")
plt.legend()
plt.show()

纵向堆积图

# some simple data
x=[1,2,3,4,5]
y=[6,10, 4,5,1]
y1=[2,6,3,8,5]
#create bar
plt.barh(x,y,align="center",color="#66c2a5",tick_label=["A","B","C","D","E"],label="班级A")
plt.barh(x,y1,align="center",left=y,color="#8da0cb", label="班级B")
#set x,y_axis label
plt.xlabel("测试难度")
plt.ylabel("试卷份数")
plt.legend()
plt.show()

在这里插入图片描述

多列数据并列柱状图

# some simple data
x=np.arange(5)
y=[6,10,4, 5,1]
yl=[2,6,3,8,5]
barwidth=0.35
tick_label=["A","B","C","D","E"]
#create bar
plt.bar(x,y,barwidth,color="c",align="center",label="班级A",alpha=0.5)
plt.bar(x+barwidth, y1, barwidth, color="b",align="center", label="班级B",alpha=0.5)
# set x,y_axis labelplt.xlabel(“测试难度")plt.ylabel("试卷份数")
# set xaxis ticks and ticklabelsplt.xticks(x+bar_width/2, tick_ label)
plt.legend ()
plt.show ()

在这里插入图片描述

多列数据平行条形图

# some simple data
x=np.arange(5)
y=[6,10,4, 5,1]
yl=[2,6,3,8,5]
barwidth=0.35
tick_label=["A","B","C","D","E"]
#create bar
plt.barh(x,y,barwidth,color="c",align="center",label="班级A",alpha=0.5)
plt.barh(x+barwidth, y1, barwidth, color="b",align="center", label="班级B",alpha=0.5)
# set x,y_axis labelplt.xlabel(“测试难度")plt.ylabel("试卷份数")
# set xaxis ticks and ticklabelsplt.xticks(x+bar_width/2, tick_ label)
plt.legend ()
plt.show ()

在这里插入图片描述

参数探索

hatch=""
关键字参数hatch取值 "/","*","-"
填充内容,使图像更美观,

x=[1,2,3,4,5]
y=[6,10,4,5,1]

plt.bar(x,y,align="center",color="b",tick_label=["A","B","C","D","E"],alpha=0.6,hatch="//")
#set x,yaxis labelplt.xlabel("测试难度")plt.ylabel("试卷份数")
#set yaxis grid
plt.grid(True, axis="y",ls=":", color="r", alpha=0.3)
plt.show()

在这里插入图片描述

函数stackplot()—用于绘制堆积折线图

x=np.arange(1, 6,1)
y=[0,4,3,5,6]
y1=[1,3, 4,2,7]
y2=[3,4,1,6,5]
labels = ["BluePlanet","BrownPlanet","GreenPlanet"]
colors =["#8da0cb","#fc8d62","#66c2a5"]
plt.stackplot (x, y,y1, y2 ,labels=labels,colors=colors)
plt.legend (loc="upper left")
plt.show()

在这里插入图片描述

函数broken_barh()—用于绘制间断条形图

plt.broken_barh([ (30,100),(180,50), (260,70)],(20,8), facecolors="#1f78b4")
plt.broken_barh([ (60,90),(190,20),(230,30),(280,60)],(10,8),facecolors=("#7fc97f","#beaed4","#fdc086","#ffff99"))
plt.xlim(0,360)
plt.ylim( 5,35)
plt.xlabel("演出时间")
plt.xticks (np.arange (0,361,60))
plt.yticks([15,25],["歌剧院A","歌剧院B"])
plt.grid(ls="-",lw=1,color="gray")
plt.title("不同地区的歌剧院的演出时间比较")
plt.show()

在这里插入图片描述

函数step()—用于绘制阶梯图

x =np.linspace(1,10,10)
y =np.sin(x)
plt.step(x, y,color="#8dd3c7", where="pre",lw=2)
plt.xlim(0,11)
plt.xticks(np.arange (1,11,1))
plt.ylim(-1.2,1.2)
plt.show()

在这里插入图片描述

直方图

plt.hist(x,bin,color,histtype,rwidth)
x:连续型数据输入值
bins:用于确定柱体的个数或者是柱体边缘范围
color:柱体颜色
histtype:柱体类型
label:图例内容
rwidth:柱体宽度
#set test scores
scoresT=np.random.randint(0,100,100)
x=scoresT
# plot histogram
bins=range(0,101,10)
plt.hist (x, bins=bins,
          color="#377eb8",
          histtype="bar",
          rwidth=10)
# set x, y-axis label
plt.xlabel("测试成绩")
plt.ylabel("学生人数")
plt.show()

直方图和柱状图的关系,
一方面,直方图描述连续型数据的分布,柱状图描述的是离散数据的分布,一个是定量数据,一个是定性数据.
另一方面,柱状图之间有间隔,直方图之间没有间隔

堆积直方图

sCoresT1 =np.random.randint (0,100,100)
sCoresT2 =np.random.randint (0,100,100)

x=[sCoresT1,sCoresT2]
colors=["#8dd3c7","#bebada"]
labels=["班级A","班级B"]
#plot histogram
bins=range(0,101,10)
plt.hist(x,bins=bins,
        color=colors,
         histtype="bar",
          rwidth=10,
          stacked=True,
         label=labels)
# set x, y-axis label
plt.xlabel("测试成绩")
plt.ylabel("学生人数")
plt.title("不同班级的测试成绩的直方图")
plt.legend ()
plt.show()

在这里插入图片描述

饼图

plt.pie(students,explode,label,autopct,startangle,shadow,color)
students:饼片代表的百分比
explode:饼片边缘偏离半径的百分比
label:标记每份文本标签内容的数值百分比样式
startangle:从x轴作为起始位置,第一个饼片逆时针旋转的角度
shadow:是否绘制饼片的阴影
color:饼片的颜色
labels =["A难度水平","B难度水平","C难度水平","D难度水平"]
students =[0.35,0.15,0.20,0.30]
colors=["#377eb8", "#4daf4a", "#984ea3", "#ff7f00"]
explode=(0.1,0.1,0.1,0.1)
#exploded pie chart
plt.pie(students,
        explode=explode,
        labels=labels,
        autopct="%3.1f%%",
        startangle=45,
        shadow=True,
        colors=colors)
plt.title("选择不同难度测试试卷的学生百分比")
plt.show()

在这里插入图片描述

箱线图

testA =np.random.randn (5000)
testB =np.random.randn(5000)
testList=[testA, testB]
labels=["随机数生成器AlphaRM","随机数生成器BetaRM"]
colors =["#1b9e77", "#d95f02"]
whis = 1.6
width =0.35
bplot =plt.boxplot(testList,
                   whis=whis,
                   widths=width,
                   sym="o",
                   labels=labels,
                   patch_artist=True)
for patch,color in zip(bplot[ "boxes"], colors):
    patch.set_facecolor(color)
plt.ylabel("随机数值")
plt.title("生成器抗干扰能力的稳定性比较")
plt.grid (axis="y",ls=":",lw=1, color="gray", alpha=0.4)
plt.show ()

在这里插入图片描述
图书链接
链接:https://pan.baidu.com/s/1TuKG-O2u4jGEfDenuWZwYQ
提取码:6p61

如果有用点个赞呀亲,三连也是很nice

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值