目录
绘制统计图形
极其基础的matplotlib绘制基础统计图形,萌新也可以看懂
plt.bar()–绘制柱状图
首先准备数据
import matplotlib.pyplot as plt
import numpy as np
#允许负半轴与中文字体(windows需将"Heiti TC"改成"SimHei")
plt.rcParams["font.sans-serif"]=["Heiti TC"]
plt.rcParams["axes.unicode_minus"]=False
#取1到10十个数
x=np.linspace(1,12,12)
#10到20随机取10个数
height=np.random.randint(10,20,12)
np.random.randint(start,end,num,endpoint)指的是在start到end间随机取num个整数,默认情况下endpoint为True
绘制图形
plt.bar(x,height,edgecolor="black",width=0.8,hatch="/",tick_label=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],color=["rosybrown","dodgerblue","lightgreen","c","darkorange","chartreuse","red","blue","green","yellow","purple","gray"])
plt.bar(x,height,edgecolor,width,hatch,tick_label,label,color)
edgecolor:为柱状图边框的颜色
tick_label:改变x轴的坐标成列表内内容
hatch:为柱状图的特殊样式,有”/”、”o”、”|”、”\”、”-“
color:不为数组时,单个数据默认全部柱子都是这个颜色
width:宽度
设置其余参数
plt.xticks(np.linspace(1,12,12))
plt.title("季度销量")
plt.xlabel("月份(月)")
plt.xticks(fontsize=8)
plt.yticks(fontsize=8)
for a,b in zip(x,height):
plt.text(a,b,b,ha="center",va="bottom",fontsize=8,color="black")
plt.show()
plt.pie()–绘制饼图
准备数据
import matplotlib.pyplot as plt
import numpy as np
x=np.random.randint(20,40,5)
xsum=0#求和
xmax=0#求最大值下标
for i in range(len(x)):
xsum+=x[i]
if x[i]> x[xmax]:
xmax=i
#将x化为百分比形式
x=x/xsum
#创建0矩阵
explode=np.zeros(len(x))
#将矩阵中的一个数据从0改为非0,用于绘制饼图的爆炸效果
explode[xmax]=0.1
np.zeros(a,b)创建一个a*b大小的全是0的矩阵
np.ones(a,b) 创建一个a*b大小的全是1的矩阵
绘制饼图
plt.pie(x,autopct="%.2f%%",shadow=True,wedgeprops={"edgecolor":"black"},colors=["rosybrown","c","dodgerblue","yellow","darkorange"],labels=["鸡","鸭","鹅","猪","牛"],explode=explode,startangle=-60)
plt.legend()
plt.title("家畜销售情况")
plt.show()
shadow:为饼图添加阴影,默认为False
wedgeprops:设置边框颜色参数
autopct:调整数据保留的小数位数
startangle:设置图像旋转某个角度后开始画图
explode:设置饼图的爆炸效果如图中的青色部分
plt.hist()–绘制直方图
#从一个正态分布的样本中随机抽取200个数
x=np.random.randn(100000000)
bins=1000
bins:用于后面的直方图分组,组分的越多且数据与多,那么图会更接近正态分布图(前提:x是从正态分布中的样本)
plt.hist(x,bins,color="c",label="A",histtype="bar",rwidth=2,alpha=0.4)
plt.legend()
plt.title("正太分布")
plt.show()
plt.hist(x,bins,color,label,histtyoe,rwidth,alpha)
hist:分的组数,如左图,bins为1000,而右图则只有100
plt.scatter()–绘制气泡图
多导入一个模块
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.cm as cm
准备数据
x=np.random.randn(100)
y=np.random.randn(100)
绘制气泡图
plt.scatter(x,y,s=np.power(x*10+y+20,2),marker="o",c=np.random.randn(100),edgecolor="black",cmap=cm.RdYlBu)
plt.show()
s:描述气泡大小的参数
c:气泡颜色
cmap:将浮点数转化为颜色
plt.polar()–绘制极线图
theta=np.linspace(0,2*np.pi,10,endpoint=False)
r=np.random.randn(10)
theta:为极线图的角度
r:为极线图上的半径长度
plt.polar(theta,r,color="chartreuse",lw=2,marker="*",mfc="b",ms=10)
plt.show()
plt.polar(theta,r,color,lw,marker,mfc,ms)
color:极线图线条颜色
lw:极线图线条宽度
marker:极线图上点的形状
mfc:极线图上点的颜色
ms:极线图上点的大小
应用:极坐标(𝜌,𝜃)
plt.stem()–绘制棉棒图
准备数据
x=np.linspace(0,6,20)
y=np.random.randn(20)
绘制棉棒图
plt.stem(x,y,linefmt="b-.",markerfmt="go",basefmt="y-")
plt.show()
plt.stem(x,y,linefmt,markerfmt,basefmt)
linefmt:棉棒样式
markerfmt:棉棒末端样式
basefmt:制定基线样式
plt.boxplot()–绘制纸箱图
#导入模块
import matplotlib.pyplot as plt
import numpy as np
#设置参数
plt.rcParams["font.sans-serif"]=["Heiti TC"]
plt.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()
plt.errorbat()–绘制误差棒图
#导入模块
import matplotlib.pyplot as plt
import numpy as np
#引入数据
x=np.linspace(0.1,0.6,6)
y=np.exp(x)
np.exp()表示指数函数e的x次方
plt.errorbar(x,y,fmt="bo:",yerr=0.2,xerr=0.01)
plt.xlim(0,0.7)
plt.show()
plt.errorbar(x,y,fmt,yerr,xerr)
fmt:线条形状”b”蓝色,”o”圆点,”:”多个点
yerr:y轴方向的数据点的误差计算方法
xerr:x轴方向的数据点的误差计算方法
控制图像十字交叉图形的长度
Original: https://blog.csdn.net/Janbob_Xiao/article/details/123803903
Author: Janbob
Title: Python matplotlib入门级绘制图形(二)–利用统计基础函数绘制简单的图形
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/765577/
转载文章受原作者版权保护。转载请注明原作者出处!