自己在学习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()函数显示。
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()
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()
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()
#折线图
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
``