有一个网站是做釆购的是什么网,苏州网络推广去苏州聚尚网络,温州网站建设免费咨询,做网上商城网站绘图基础语法
#xff11; 创建画布并且创建子图
首先创建一个空白的画布#xff0c;并且可以将画布分为几个部分#xff0c;这样就可以在同一附图上绘制多个图像。
plt.figure 创建一个空白画布#xff0c;可以指定画布大小、像素
figure.add_subplot 创建并且选中子…绘图基础语法 创建画布并且创建子图
首先创建一个空白的画布并且可以将画布分为几个部分这样就可以在同一附图上绘制多个图像。
plt.figure 创建一个空白画布可以指定画布大小、像素
figure.add_subplot 创建并且选中子图可以指定子图的行数、列数、和图片的编号
2 添加画布内容
plt.title 当前图形标题可以指定标题名称、位置、颜色、字体大小
plt.xlabel 当前图像添加x轴名称
plt.ylabel 当前图形添加y轴名称
plt.xlim 指定当前图形x轴的范围
plt.ylim y轴的范围
plt.xtricks x轴刻度数目与取值
plt.legend 当前图像的图例
import numpy as np
import matplotlib.pyplot as pltradnp.arange(0,np.pi*2,0.01)
p1plt.figure(figsize(8,8),dpi80) #创建画布#子图
ax1p1.add_subplot(1,2,1) #2行1列的子图绘制第一幅
plt.title(lines) #添加标题
plt.xlabel(x) #x轴的名称
plt.ylabel(y) #y轴的名称
plt.xlim((0,1)) #确定x轴的范围
plt.ylim((0,1))plt.xticks([0,0.2,0.4,0.6,0.8,1]) #x轴的刻度
plt.yticks([0,0.2,0.4,0.6,0.8,1])
plt.plot(rad,rad**2) #添加yx**2曲线
plt.plot(rad,rad**4) #添加yx**4曲线
plt.legend([yx^2,yx^4])#第二幅子图
ax2p1.add_subplot(1,2,2)
plt.title(sin/cos)
plt.xlabel(rad)
plt.ylabel(value)
plt.xlim((0,np.pi*2))
plt.ylim((-1,1))
plt.xticks([0,np.pi/2,np.pi*1.5,np.pi*2])
plt.yticks([-1,-0.5,0,0.5,1])
plt.plot(rad,np.sin(rad))
plt.plot(rad,np.cos(rad))
plt.legend([sin,cos])
plt.savefig(./sin.png)
plt.show()散点图和折线图
散点图 又叫做散点分布图是以一个特征为横坐标另一个特征为纵坐标利用坐标点的分布形态反映特征间的统计关系。
散点图可以看出特征之间的关系是线性的还是非线性的另外可以看出一个点是否偏离大多数点。如果偏离大多数点则这些点就是离群点。
散点图通过散点的疏密程度和变化趋势表示两个特征的数量关系。
matplotlib.pyplot.scatter(x, y, sNone, cNone, markerNone)
s 表示点的大小c表示颜色marker表示点的类型。
折线图是一种将数据点连接起来的图像。折线图主要是用来查看因变量y随着自变量x改变的趋势。
import numpy as np
import matplotlib.pyplot as pltradnp.arange(0,np.pi*2,0.01)
p1plt.figure(figsize(8,8),dpi80) #创建画布#子图
ax1p1.add_subplot(1,2,1) #2行1列的子图绘制第一幅
plt.title(lines) #添加标题
plt.xlabel(x) #x轴的名称
plt.ylabel(y) #y轴的名称
plt.xlim((0,1)) #确定x轴的范围
plt.ylim((0,1))plt.xticks([0,0.2,0.4,0.6,0.8,1]) #x轴的刻度
plt.yticks([0,0.2,0.4,0.6,0.8,1])
plt.plot(rad,rad**2,colorr,linestyle--) #添加yx**2曲线
plt.plot(rad,rad**4,colorc,linestyle-) #添加yx**4曲线
plt.legend([yx^2,yx^4])#第二幅子图
ax2p1.add_subplot(1,2,2)
radnp.arange(0,np.pi*2,0.1)
plt.title(sin/cos)
plt.xlabel(rad)
plt.ylabel(value)
plt.xlim((0,np.pi*2))
plt.ylim((-1,1))
plt.xticks([0,np.pi/2,np.pi*1.5,np.pi*2])
plt.yticks([-1,-0.5,0,0.5,1])
plt.scatter(rad,np.sin(rad),markerv)
plt.scatter(rad,np.cos(rad),markero)
plt.legend([sin,cos])
plt.savefig(./sin.png)
plt.show()直方图 饼图 箱线图 用于分析特征内部分布与分散状况
直方图主要用于查看各分组数据的数量分布
饼图用于查看个分组数据在总数据中的占比
箱线图是用于发现整体数据的分散情况
直方图 用于判断特征的分布
直方图由一系列高度不等的纵向条纹表示数据分布的情况。一般横轴表示数据所属类别纵轴表示各个类别的数量或者占比。直方图可以直观的表示数据的分布状态。
import numpy as np
import matplotlib.pyplot as plt# 生成一组服从正态分布的随机数
data np.random.randn(1000)# 可视化分布
plt.hist(data, bins30, densityTrue, alpha0.6, colorg)# 绘制正态分布的概率密度函数
xmin, xmax plt.xlim()
x np.linspace(xmin, xmax, 100)
p 0.9 * np.exp(-(x - 0) ** 2 / (2 * 0.5 ** 2)) # 正态分布的概率密度函数
plt.plot(x, p, k, linewidth2)plt.show() import numpy as np
import matplotlib.pyplot as plt# 生成一组服从[0, 1]均匀分布的随机数
data np.random.uniform(0, 1, 1000)# 可视化分布
plt.hist(data, bins30, densityTrue, alpha0.6, colorg)
plt.show() import numpy as np
import matplotlib.pyplot as plt# 生成一组服从参数为0.5的指数分布的随机数
data np.random.exponential(0.5, 1000)# 可视化分布
plt.hist(data, bins30, densityTrue, alpha0.6, colorg)
plt.show() import numpy as np
import matplotlib.pyplot as plt# 生成一组服从参数为5的泊松分布的随机数
data np.random.poisson(5, 1000)# 可视化分布
plt.hist(data, bins30, densityTrue, alpha0.6, colorg)
plt.show() from scipy import stats
import numpy as np
# 生成一组随机数
data np.random.randn(10000)# 检测正态分布
stat, p stats.normaltest(data)
print(Statistics%.3f, p%.3f % (stat, p))# 如果p值小于显著性水平例如0.05则认为数据不服从正态分布
if p 0.05:print(Data does not follow normal distribution)
else:print(Data follows normal distribution)# 拟合指数分布
loc, scale stats.expon.fit(data)
print(Exponential distribution parameters: loc%.3f, scale%.3f % (loc, scale))# 检测指数分布
stat, p stats.kstest(data, stats.expon(locloc, scalescale).cdf)
print(Statistics%.3f, p%.3f % (stat, p))# 如果p值小于显著性水平例如0.05则认为数据不符合指数分布
if p 0.05:print(Data does not follow exponential distribution)
else:print(Data follows exponential distribution) 知道数据的分布可以更好的理解数据的变化规律而且可以帮助我们发现数据中的异常值。通过对数据分布的分析可以识别并且处理重复值缺失值异常值提高数据的质量和准确性。
饼图
饼图是将各项的大小和各项总和比例显示在一张图上饼图可以清楚的反应部分与部分部分与整体的比例关系。
import matplotlib.pyplot as plt# 数据
labels [A, B, C, D]
sizes [15, 30, 45, 10]# 绘制饼图
plt.pie(sizes, labelslabels, autopct%1.1f%%)# 显示图形
plt.show() 箱线图 判断数据的分散程度
箱线图可以用来显示一组数据分散情况的统计图包含一组数据的最大值、最小值
中位数、和上下四分位数。
箱线图有箱子和边缘构成其中箱子包含了50%的数据边缘则代表数据的上四分位数和下四分位数也就是数据的上边缘和下边缘各包含了25%的数据。箱子的中间包含了一条线表示了数据的中位数。
import matplotlib.pyplot as plt
import numpy as np
all_data[np.random.normal(0,std,100) for std in range(1,4)]figure,axesplt.subplots() #得到画板、轴
axes.boxplot(all_data,patch_artistTrue) #描点上色
plt.show() #展示 import matplotlib.pyplot as plt
import numpy as np# 创建数据
datanp.random.normal(0,1,10000)# 计算上下四分位数和异常值
q1 np.percentile(data, 25)
q3 np.percentile(data, 75)
iqr q3 - q1
lower q1 - 1.5 * iqr
upper q3 1.5 * iqr
outliers [x for x in data if x lower or x upper]print(q1,q1)
print(q3,q3)
print(iqr,iqr)
print(lower,lower)
print(upper,upper)
print(outliers,outliers)
print(异常值的个数,len(outliers))# 绘制箱线图
fig, ax plt.subplots()
ax.boxplot(data, vertTrue, patch_artistTrue)
ax.set_title(Box Plot)
ax.set_xlabel(Data)
ax.set_ylabel(Value)
ax.text(0.85, 0.90, Outliers: {0}.format(, .join(map(str, outliers))), hacenter, vacenter)
plt.show() 箱线图的理解-CSDN博客 通过箱线图找到异常值
import matplotlib.pyplot as plt
import numpy as np# 创建数据
datanp.random.normal(0,1,10000)# 计算上下四分位数和异常值
q1 np.percentile(data, 25)
q3 np.percentile(data, 75)
iqr q3 - q1
lower q1 - 1.5 * iqr
upper q3 1.5 * iqr
outliers [x for x in data if x lower or x upper]print(q1,q1)
print(q3,q3)
print(iqr,iqr)
print(lower,lower)
print(upper,upper)
print(outliers,outliers)
print(异常值的个数,len(outliers))# 绘制箱线图
fig, ax plt.subplots()
ax.boxplot(data, vertTrue, patch_artistTrue)
ax.set_title(Box Plot)
ax.set_xlabel(Data)
ax.set_ylabel(Value)
ax.text(0.85, 0.90, Outliers: {0}.format(, .join(map(str, outliers))), hacenter, vacenter)
# plt.show()p1plt.figure()
ax1p1.add_subplot(1,2,1)
ax1.hist(data,densityTrue)
print(len(data))
for _ in outliers:coornp.where(data_)data[coor]np.nan# print(coor)# print(data[coor])
# cordnp.where(datanp.nan)
# print(cord)
datadata[~np.isnan(data)]
print(len(data))
# plt.show()ax2p1.add_subplot(1,2,2)
ax2.hist(data,densityTrue)
plt.show()