matplotlib画图

matplotlib画图

自己在学习matplotlib过程中的一些总结,希望对大家有所帮助!

第一章、使用函数绘制matplotlib的图表组成元素

import numpy as np 
from matplotlib import pyplot as plt 
 
x = np.arange(1,11) 
y =  2  * x +  5 
plt.title("Matplotlib demo") 
plt.xlabel("x axis caption") 
plt.ylabel("y axis caption") 
plt.plot(x,y) 
plt.show()

以上实例中,np.arange() 函数创建 x 轴上的值。y 轴上的对应值存储在另一个数组对象 y 中。 这些值使用 matplotlib 软件包的 pyplot 子模块的]() plot() 函数绘制。图形由show()函数显示。

img

1、subplot()

subplot() 函数允许你在同一图中绘制不同的东西。

import numpy as np 
import matplotlib.pyplot as plt 
# 计算正弦和余弦曲线上的点的 x 和 y 坐标 
x = np.arange(0,  3  * np.pi,  0.1) 
y_sin = np.sin(x) 
y_cos = np.cos(x)  
# 建立 subplot 网格,高为 2,宽为 1  
# 激活第一个 subplot
plt.subplot(2,  1,  1)  
# 绘制第一个图像 
plt.plot(x, y_sin) 
plt.title('Sine')  
# 将第二个 subplot 激活,并绘制第二个图像
plt.subplot(2,  1,  2) 
plt.plot(x, y_cos) 
plt.title('Cosine')  
# 展示图像
plt.show()

img

2、bar()

pyplot 子模块提供 bar() 函数来生成条形图.

from matplotlib import pyplot as plt 
x =  [5,8,10] 
y =  [12,16,6] 
x2 =  [6,9,11] 
y2 =  [6,15,7] 
plt.bar(x, y, align =  'center') 
plt.bar(x2, y2, color =  'g', align =  'center') 
plt.title('Bar graph') 
plt.ylabel('Y axis') 
plt.xlabel('X axis') 
plt.show()

img

3、plt()

Matplotlib 可以将直方图的数字表示转换为图形。 pyplot 子模块的 plt() 函数将包含数据和 bin 数组的数组作为参数,并转换为直方图。

from matplotlib import pyplot as plt 
import numpy as np  
 
a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27]) 
plt.hist(a, bins =  [0,20,40,60,80,100]) 
plt.title("histogram") 
plt.show()

img

4、折线图-plot()

#折线图
x = np.linspace(0.05,10,1000)
y = np.cos(x)
plt.plot(x,y,ls="-",lw=2,label="plot figure")
plt.legend(loc="lower left")
plt.text(3.10,0.09,"y=cos(x)",weight="bold",color="b")   #添加图形内容细节的无指向型注释文本
plt.title("y=cos(x)")
plt.show()

5、散点图-scatter()

x = np.linspace(0.05,10,1000)
y = np.random.rand(1000)    #函数randn(100)表示在标准正态分布中随机地取100个数
plt.scatter(x,y,label="scatter figure")

plt.legend()   #图例

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

plt.grid(linestyle=":",color="r")   #网格线

plt.xlabel("x-axis")      #x轴名称
plt.ylabel("y-axis")    #y轴名称

plt.axhline(y=0.2,c="r",ls="--",lw=2)   #绘制水平线
plt.axvline(x=4.0,c="r",ls="--",lw=2)

plt.axvspan(xmin=4.0,xmax=6.0,facecolor='y',alpha=0.3) #绘制垂直于x轴的参考区域
plt.axhspan(ymin=0.2,ymax=0.5,facecolor='y',alpha=0.3)

plt.show()

第二章、使用统计函数绘制简单图形

6、annotate()-添加图形内容细节的指向型注释文本

x = np.linspace(0.05,10,1000)    #在0.05到10之间均匀地取1000个数
y = np.sin(x)
plt.plot(x,y,ls="-",lw=2,c="c",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()

7、函数bar()-绘制柱状图

import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
x = [1,2,3,4,5,6,7,8]
y = [3,1,4,5,8,9,7,2]
plt.bar(x,y,align="center",color="c",tick_label=["q","a","c","e","r","j","b","p"],hatch="/")
plt.xlabel("箱子编号")
plt.ylabel("箱子重量(kg)")
plt.show()

8、barh()—条形图

mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
x = [1,2,3,4,5,6,7,8]
y = [3,1,4,5,8,9,7,2]
plt.barh(x,y,align="center",color="c",tick_label=["q","a","c","e","r","j","b","p"],hatch="/")
plt.xlabel("箱子重量(kg)")
plt.ylabel("箱子编号")
plt.show()箱子重量(kg)")
plt.show()

9、hist()------直方图

import matplotlib as mpl
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
import matplotlib.pyplot as plt
import numpy as np
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("箱子重量")
plt.ylabel("销售数量")
plt.show()

10、pie()----绘制饼图

import matplotlib as mpl
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
import matplotlib.pyplot as plt
kinds = "简易箱","保温箱","行李箱","蜜蜂箱"
colors = ["#e41a1c","#377eb8","#4daf4a","#984ea3"]
soldNums = [0.05,0.45,0.15,0.35]
plt.pie(soldNums,
        labels=kinds,
        autopct="%3.1f%%",
        startangle=60,
        colors=colors)
plt.title("不同类型箱子的销售数量占比")
plt.show()

11、polar()—绘制极线图

import matplotlib.pyplot as plt
import numpy as np
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()

12、scatter()----用于绘制气泡图

import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl
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.rand(100),       #散点的颜色
            cmap=mpl.cm.RdYlBu,marker="o")  #将浮点数映射成颜色的颜色映射表
plt.show()

13、stem()–绘制棉棒图

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0.5,2*np.pi,20)   #指定棉棒的x轴基线的位置
y = np.random.randn(20)   #绘制棉线的长度
plt.stem(x,y,linefmt="-.",markerfmt="o",basefmt="-")   #markerfmt棉棒的样式,basefmt指定基线的样式
plt.show()

14、boxplot()—箱线图

import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl
mpl.rcParams["font.sans-serif"]=["Fangsong"]
mpl.rcParams["axes.unicode_minus"]=False
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()

15、errorbar()–绘制误差棒图

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0.1,0.6,6)  #数据点的水平位置
y = np.exp(x)            #数据点的垂直位置
plt.errorbar(x,y,fmt="bo",yerr=0.2,xerr=0.02)    #yerr:y轴方向的数据点的误差计算方法,xerr:x轴方向的数据点的误差计算方法
plt.xlim(0,0.7)
plt.show()

第三章、绘制统计图形

16、柱状图

import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
x = [1,2,3,4,5]
y = [6,10,4,5,1]      #柱形图的高度
plt.bar(x,y,align="center",color="c",tick_label=["A","B","C","D","E"],hatch="/",alpha=.6)   #align柱体对齐方式
plt.xlabel("测试难度")
plt.ylabel("试卷份数")
plt.grid(True,axis="y",ls=":",color="r",alpha=.3)
plt.show()

ont.sans-serif"]=[“SimHei”]
mpl.rcParams[“axes.unicode_minus”]=False
x = [1,2,3,4,5]
y = [6,10,4,5,1] #柱形图的高度
plt.bar(x,y,align=“center”,color=“c”,tick_label=[“A”,“B”,“C”,“D”,“E”],hatch="/",alpha=.6) #align柱体对齐方式
plt.xlabel(“测试难度”)
plt.ylabel(“试卷份数”)
plt.grid(True,axis=“y”,ls=":",color=“r”,alpha=.3)
plt.show()
``

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小高要坚强

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

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

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

打赏作者

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

抵扣说明:

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

余额充值