返回列表 发帖

数据统计分析(Numpy)

这是在 Pandas+Excel+绘图库Matplotlib+Seaborn图表 的基础上进行的。


列出当前环境所有已经安装的第三方库的名称和其版本号:
C:\Users\jacky\Desktop>pip3 freeze
cycler==0.11.0
et-xmlfile==1.1.0
kiwisolver==1.3.1
matplotlib==3.3.0
numpy==1.19.5
openpyxl==3.1.2
pandas==1.1.5
Pillow==8.4.0
pyparsing==3.1.1
python-dateutil==2.8.2
pytz==2023.3
scipy==1.5.4
seaborn==0.11.2
six==1.16.0
xlrd==1.2.0
xlwt==1.3.0

C:\Users\jacky\Desktop>



NumPy是Python数组计算、矩阵运算和科学计算的核心库,提供了一个高性能的数组对象,其用途是以数组的形式对数据进行操作。



######

#coding=utf-8
import numpy as np

n_1 = np.array([1,2,3]) #创建一个一维数组
print(n_1)
print(type(n_1))
print(n_1.dtype)

print("-" * 10)

n_2 = np.array([[1,-2],[3,4.5]]) #创建一个二维数组
print(n_2)
print(type(n_2))
print(n_2.dtype)

脚本运行的结果:
图片1.png



######

#coding=utf-8
import numpy as np

Key_1 = -1
Key_2 = 4.5

n_1 = np.array([Key_1,Key_2]) #创建一个一维数组
print(n_1)
print(type(n_1))
print(n_1.dtype)

print("-" * 10)

n_2 = np.array([[1,2,3],[3,4,5]]) #创建一个二维数组
print(n_2)
print(type(n_2))
print(n_2.dtype)

脚本运行的结果:
图片2.png



######

#coding=utf-8
import numpy as np

Key_1 = '10'
Key_2 = '25'
Key_3 = '-30'

n_1 = np.array([Key_1,Key_2,Key_3]) #创建一个一维数组(字符串)
print(n_1)
print(type(n_1))
print(n_1.dtype)

print("-" * 5)

Result_1 = n_1[1] #数组n_1的第二个元素
print(Result_1)
print(type(Result_1))

print("-" * 10)
print("-" * 10)

n_2 = n_1.astype(int) #把数组n_1转换为整型
print(n_2)
print(n_2.dtype)

print("-" * 5)

Result_2 = n_2[1] #数组n_2的第二个元素
print(Result_2)
print(type(Result_2))

print("-" * 3)

Result_22 = int(Result_2) #转换为整型
print(Result_22)
print(type(Result_22))

脚本运行的结果:
图片3.png



######

#coding=utf-8
import numpy as np

Key_1 = '10'
Key_2 = '20.5'
Key_3 = '-30.5'

n_1 = np.array([Key_1,Key_2,Key_3]) #创建一个一维数组(字符串)
print(n_1)
print(type(n_1))
print(n_1.dtype)

print("-" * 5)

Result_1 = n_1[2] #数组n_1的第三个元素
print(Result_1)
print(type(Result_1))

print("-" * 10)
print("-" * 10)

n_2 = n_1.astype(float) #把数组n_1转换为浮点型
print(n_2)
print(n_2.dtype)

print("-" * 5)

Result_2 = n_2[2] #数组n_2的第三个元素
print(Result_2)
print(type(Result_2))

print("-" * 3)

Result_22 = float(Result_2) #转换为浮点型
print(Result_22)
print(type(Result_22))

脚本运行的结果:
图片4.png



######

#coding=utf-8
import numpy as np

xKey_1 = '李大杰'
xKey_2 = 'Jacky'
xKey_3 = 'Lily'

yKey_1 = 20
yKey_2 = -40
yKey_3 = 30

n_1 = np.array([[xKey_1,xKey_2,xKey_3],[yKey_1,yKey_2,yKey_3]]) #创建一个二维数组

print(n_1)
print(type(n_1))
print(n_1.dtype)

print("-" * 5)

Result_1 = n_1[1] #二维数组n_1的第2行的数组
print(Result_1)
print(Result_1.dtype)

print("-" * 10)
print("-" * 10)

Result_2 = map(int,n_1[1]) #把二维数组n_1的第2行的数组转换为整型
Result_2 = list(Result_2) #转换为列表

print(Result_2)
print(type(Result_2))

print("-" * 5)

Result_22 = Result_2[1] #列表的第二个元素
print(Result_22)
print(type(Result_22))

脚本运行的结果:
图片5.png



######

#coding=utf-8
import numpy as np

xKey_1, xKey_2 = '李大杰','Jacky'
xKey_3 = 'Lily'

yKey_1,yKey_2,yKey_3 = 20, -40.5, 30

n_1 = np.array([[xKey_1,xKey_2,xKey_3],[yKey_1,yKey_2,yKey_3]]) #创建一个二维数组

print(n_1)
print(type(n_1))
print(n_1.dtype)

print("-" * 5)

Result_1 = n_1[1] #二维数组n_1的第2行的数组
print(Result_1)
print(type(Result_1))
print(Result_1.dtype)

print("-" * 10)
print("-" * 10)

Result_2 = map(float,n_1[1]) #把二维数组n_1的第2行的数组转换为的浮点型
Result_2 = list(Result_2) #转换为列表

print(Result_2)
print(type(Result_2))

print("-" * 5)

Result_22 = Result_2[1] #列表的第二个元素
print(Result_22)
print(type(Result_22))

脚本运行的结果:
图片6.png



######

#coding=utf-8
import numpy as np

Key_1 = 1
Key_2 = 4.5

n_1 = np.array([Key_1,Key_2],dtype=int) #创建一个一维数组,并且指定数组类型为整型
print(n_1)
print(n_1.dtype)

print("-" * 10)

n_2 = np.array([Key_1,Key_2],dtype=float) #创建一个一维数组,并且指定数组类型为浮点型
print(n_2)
print(n_2.dtype)

脚本运行的结果:(由于数组n_1的数组类型为整型,所以其元素不显示小数部分)
图片7.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([1,2,3,4]) #创建一个一维数组
print(n_1)

print("-" * 10)

n_2 = np.array(n_1,copy=True) #复制数组n_1
print(n_2)

n_2[0] = 8 #修改数组n_2的第一个元素为8

n_2[2] = 18 #修改数组n_2的第三个元素为18

print("-" * 10)
print("-" * 10)

print(n_1)

print("-" * 10)

print(n_2)

脚本运行的结果:
图片8.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([1,2,3,4]) #创建一个一维数组
n_2 = np.array([5,6,7]) #创建一个一维数组

print(n_1)
print(n_2)

print("-" * 10)
print("-" * 10)

Result_1 = np.hstack((n_1,n_2)) #往水平方向增加数据
print(Result_1)

print("-" * 10)

Result_2 = np.hstack((n_2,n_1)) #往水平方向增加数据
print(Result_2)

脚本运行的结果:
图片9.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([[1,2,3],[10,25,30.5]]) #创建一个二维数组
print(n_1)

print("-" * 10)

n_2 = np.array(n_1,copy=True) #复制数组n_1
print(n_2)

n_2[0][1] = 2.5 #修改二维数组n_2的第1行的第2个元素为2.5

n_2[1] = [10,20,30] #修改二维数组n_2的第2行的数组为[10,20,30]

print("-" * 10)
print("-" * 10)

print(n_1)

print("-" * 10)

print(n_2)

脚本运行的结果:
图片10.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([[1,2,3],[3,4,5]]) #创建一个二维数组
print(n_1)

print("-" * 10)

n_2 = np.array([[10,20,30],[30,45,55]]) #创建一个二维数组
print(n_2)

print("-" * 10)
print("-" * 10)

Result_1 = np.hstack((n_1,n_2)) #往水平方向增加数据
print(Result_1)

print("-" * 10)

Result_2 = np.vstack((n_1,n_2)) #往垂直方向增加数据
print(Result_2)

脚本运行的结果:
图片11.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([[1,2,3],[3,4,5],[10,20,30]])
print(n_1)
print(type(n_1))

print("-" * 10)
print("-" * 10)

Result_1 = np.delete(n_1,1,axis=0) #删除数组n_1的第2行
print(Result_1)

print("-" * 10)
print("-" * 10)

Result_2 = np.delete(n_1,0,axis=1) #删除数组n_1的第1列
print(Result_2)

脚本运行的结果:
图片12.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([[1,2,3],[3,4,5],[10,20,30]])
print(n_1)
print(type(n_1))

print("-" * 10)
print("-" * 10)

n_2 = np.delete(n_1,1,axis=0) #删除数组n_1的第2行
print(n_2)

print("-" * 5)

Result_2 = np.delete(n_2,0,axis=1) #再删除数组n_2的第1列
print(Result_2)

脚本运行的结果:
图片13.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([[1,2,3],[3,4,5],[10,20,30],[30,45,55]])
print(n_1)
print(type(n_1))

print("-" * 10)
print("-" * 10)

Result_1 = np.delete(n_1,(0,1),axis=0) #删除数组n_1第1行、第2行
print(Result_1)

print("-" * 10)
print("-" * 10)

Result_2 = np.delete(n_1,(0,2),axis=1) #删除数组n_1第1列、第3列
print(Result_2)

脚本运行的结果:
图片14.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([[1,2,3],[3,4,5],[10,20,30]])
print(n_1)
print(type(n_1))
print(n_1.dtype)

print("-" * 10)
print("-" * 10)

n_1[1][2] = -5 #修改数组n_1的第2行的第3个元素为-5
print(n_1)

print("-" * 5)

n_1[2] = [10,-20,30.5] #再修改数组n_1的第3行的数组为[10,-20,30.5]
print(n_1)

脚本运行的结果:(由于数组n_1的数组类型为整型,所以其元素不显示小数部分)
图片15.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([[1,2,3],[3,4,5],[10,20,30]],dtype=float) #指定数组类型为浮点型

print(n_1)
print(type(n_1))
print(n_1.dtype)

print("-" * 10)
print("-" * 10)

n_1[0][2] = -3 #修改数组n_1的第1行的第3个元素为-3
print(n_1)

print("-" * 5)

n_1[2] = [10,-20,30.5] #再修改数组n_1的第3行的数组为[10,-20,30.5]
print(n_1)

脚本运行的结果:(由于数组n_1的数组类型为浮点型,所以其元素显示小数部分)
图片16.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([[1,2,3],[3,4,5],[10,20,30]])
print(n_1)
print(type(n_1))

print("-" * 10)
print("-" * 10)

print(n_1[0])  #输出第1行的数组
print(type(n_1[0]))

print("-" * 5)

print(n_1[-1])  #输出倒数第1行的数组

print("-" * 10)

print(n_1[0,0])  #输出第1行第1列的元素

print("-" * 5)

print(n_1[1,2])  #输出第2行第3列的元素

脚本运行的结果:
图片17.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([[1,2,3],[3,4,5]]) #创建一个二维数组
print(n_1)
print(type(n_1))

print("-" * 10)
print("-" * 10)

print(n_1[0])  #输出第1行的数组

print("-" * 3)

Result_1 = list(n_1[0]) #将第1行的数组转换为列表
print(Result_1)
print(type(Result_1))

print("-" * 10)

print(n_1[1])  #输出第2行的数组
print(type(n_1[1]))

print("-" * 3)

Result_2 = tuple(n_1[1]) #将第2行的数组转换为元组
print(Result_2)
print(type(Result_2))

脚本运行的结果:
图片18.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([1,2,3,4]) #创建一个一维数组

print(n_1)
print(type(n_1))
print(n_1.dtype)

print("-" * 3)
print(n_1[1])
print(type(n_1[1]))

print("-" * 10)

n_2 = list(n_1) #转换为列表

print(n_2)
print(type(n_2))

print("-" * 3)
print(n_2[1])
print(type(n_2[1]))

print("-" * 10)

n_3 = tuple(n_1) #转换为元组

print(n_3)
print(type(n_3))

print("-" * 3)
print(n_3[1])
print(type(n_3[1]))

脚本运行的结果:
图片19.png



######

#coding=utf-8
import numpy as np

n_1 = [1,2,3,4] #创建一个列表

print(n_1)
print(type(n_1))

print("-" * 3)

print(n_1[1])
print(type(n_1[1]))

print("-" * 10)
print("-" * 10)

n_2 = np.array(n_1) #转换为一维数组

print(n_2)
print(type(n_2))

print("-" * 3)

print(n_2[1])
print(type(n_2[1]))

print("-" * 3)

Result_2 = int(n_2[1]) #转换为整型
print(Result_2)
print(type(Result_2))

脚本运行的结果:
图片20.png



######

#coding=utf-8
import numpy as np

n_1 = (1,2,3,4.5) #创建一个元组

print(n_1)
print(type(n_1))

print("-" * 3)

print(n_1[2])
print(type(n_1[2]))

print("-" * 10)
print("-" * 10)

n_2 = np.array(n_1) #转换为一维数组

print(n_2)
print(type(n_2))

print("-" * 3)

print(n_2[2])
print(type(n_2[2]))

print("-" * 3)

Result_2 = float(n_2[2]) #转换为浮点型
print(Result_2)
print(type(Result_2))

脚本运行的结果:
图片21.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([1,4]) #创建一个一维数组
n_2 = np.array([3,2]) #创建一个一维数组

print(n_1)
print(n_2)

print("-" * 10)

Result_1 = n_1 + n_2 #加法运算

print(Result_1)

print("-" * 10)

Result_2 = n_1 - n_2 #减法运算

print(Result_2)

脚本运行的结果:
图片22.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([1,4]) #创建一个一维数组
n_2 = np.array([3,2]) #创建一个一维数组

print(n_1)
print(n_2)

print("-" * 10)

Result_1 = np.add(n_1,n_2) #加法运算

print(Result_1)

print("-" * 10)

Result_2 = np.subtract(n_1,n_2) #减法运算

print(Result_2)

脚本运行的结果:
图片23.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([1,4]) #创建一个一维数组
n_2 = np.array([3,2]) #创建一个一维数组

print(n_1)
print(n_2)

print("-" * 10)

Result_1 = n_1 * n_2 #乘法运算

print(Result_1)

print("-" * 10)

Result_2 = n_1 / n_2 #除法运算

print(Result_2)

脚本运行的结果:
图片24.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([1,4]) #创建一个一维数组
n_2 = np.array([3,2]) #创建一个一维数组

print(n_1)
print(n_2)

print("-" * 10)

Result_1 = np.multiply(n_1,n_2) #乘法运算

print(Result_1)

print("-" * 10)

Result_2 = np.divide(n_1,n_2) #除法运算

print(Result_2)

脚本运行的结果:
图片25.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([1,4]) #创建一个一维数组
n_2 = np.array([5,3]) #创建一个一维数组

print(n_1)
print(n_2)

print("-" * 10)

Result_1 = n_1 ** n_2 #幂运算
print(Result_1)
print(type(Result_1))

print("-" * 5)

Result_2 = np.power(n_1, n_2) #幂运算
print(Result_2)
print(type(Result_2))

print("-" * 3)

print(Result_2[1])
print(type(Result_2[1]))

print("-" * 3)

Result_22 = int(Result_2[1]) #转换为整型
print(Result_22)
print(type(Result_22))

脚本运行的结果:
图片26.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([1,5]) #创建一个一维数组
n_2 = np.array([5,3,4]) #创建一个一维数组

print(n_1)
print(n_2)

print("-" * 10)

Result_1 = np.sum(n_1) #求数组n_1的和
print(Result_1)

print("-" * 5)

Result_11 = np.mean(n_1) #求数组n_1的平均值
print(Result_11)

print("-" * 10)
print("-" * 10)

Result_2 = np.sum(n_2) #求数组n_2的和
print(Result_2)

print("-" * 5)

Result_22 = np.mean(n_2) #求数组n_2的平均值
print(Result_22)
print(type(Result_22))

print("-" * 3)

Result_222 = float(Result_22) #转换为浮点型
print(Result_222)
print(type(Result_222))

脚本运行的结果:
图片27.png



######

#coding=utf-8
import numpy as np

n_1 = [1,4,2] #创建一个列表
n_2 = [5,3,5] #创建一个列表

print(n_1)
print(n_2)

print("-" * 10)
print("-" * 10)

Result_1 = np.power(n_1, n_2) #幂运算
print(Result_1)
print(type(Result_1))

print("-" * 10)

Result_2 = np.sum(n_2) #求列表n_2的和
print(Result_2)
print(type(Result_2))

print("-" * 3)

Result_22 = int(Result_2) #转换为整型
print(Result_22)
print(type(Result_22))

脚本运行的结果:
图片28.png



######

#coding=utf-8
import numpy as np

n_1 = (1,4,2) #创建一个元组
n_2 = (5,3,5) #创建一个元组

print(n_1)
print(n_2)

print("-" * 10)
print("-" * 10)

Result_1 = np.sum(n_1) #求元组n_1的和
print(Result_1)
print(type(Result_1))

print("-" * 10)

Result_2 = np.power(n_2, n_1) #幂运算
print(Result_2)
print(type(Result_2))

print("-" * 3)

Result_3 = tuple(Result_2) #转换为元组
print(Result_3)
print(type(Result_3))

print("-" * 3)

Result_4 = list(Result_3) #转换为列表
print(Result_4)
print(type(Result_4))

脚本运行的结果:
图片29.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([1,4,2]) #创建一个一维数组
n_2 = np.array([5,3,5]) #创建一个一维数组

print(n_1)
print(n_2)

print("-" * 10)
print("-" * 10)

Result_1 = np.sum(n_1) #求数组n_1的和
print(Result_1)
print(type(Result_1))

print("-" * 10)

Result_2 = np.power(n_2, n_1) #幂运算
print(Result_2)
print(type(Result_2))

print("-" * 3)

Result_3 = list(Result_2) #转换为列表
print(Result_3)
print(type(Result_3))

print("-" * 3)

Result_4 = tuple(Result_3) #转换为元组
print(Result_4)
print(type(Result_4))

脚本运行的结果:
图片30.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([1,4,7]) #创建一个一维数组
n_2 = np.array([3,2,8]) #创建一个一维数组

print(n_1)
print(n_2)

print("-" * 10)
print("-" * 10)

Result_1 = np.mean(n_1) #求数组n_1的平均值
print(Result_1)
print(type(Result_1))

print("-" * 3)

Result_1 = np.max(n_1) #求数组n_1的最大值
print(Result_1)
print(type(Result_1))

print("-" * 10)

Result_2 = np.min(n_2) #求数组n_2的最小值
print(Result_2)
print(type(Result_2))

print("-" * 3)

Result_2 = np.median(n_2) #求数组n_2的中位数
print(Result_2)
print(type(Result_2))

脚本运行的结果:
图片31.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([1,4,7]) #创建一个一维数组
n_2 = np.array([3,2,8]) #创建一个一维数组

print(n_1)
print(n_2)

print("-" * 10)

Result_1 = n_1 + n_2 #加法运算

print(Result_1)
print(type(Result_1))

print("-" * 10)

Result_2 = np.subtract(n_1,n_2) #减法运算

print(Result_2)
print(type(Result_2))

脚本运行的结果:
图片32.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([1,4,7]) #创建一个一维数组
n_2 = np.array([3,2,8]) #创建一个一维数组

print(n_1)
print(n_2)

print("-" * 10)

Result_1 = n_1 * n_2 #乘法运算

print(Result_1)
print(type(Result_1))

print("-" * 10)

Result_2 = np.divide(n_1, n_2) #除法运算

print(Result_2)
print(type(Result_2))

脚本运行的结果:
图片33.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([1,4,7]) #创建一个一维数组
n_2 = np.array([3,2,8]) #创建一个一维数组

print(n_1)
print(n_2)

print("-" * 10)

Result_1 = ((n_1 - n_2)/n_2)*100

print(Result_1)
print(type(Result_1))

print("-" * 5)

Result_2 = (np.subtract(n_1,n_2)/n_2)*100

print(Result_2)
print(type(Result_2))

脚本运行的结果:
图片34.png



######

#coding=utf-8
import numpy as np

n_1 = np.array([1,4]) #创建一个一维数组
print(n_1)

print("-" * 10)

Result_1 = (n_1 / np.sum(n_1))*100

print(Result_1)
print(type(Result_1))

print("-" * 5)

Result_2 = np.divide(n_1,np.sum(n_1))*100

print(Result_2)
print(type(Result_2))

脚本运行的结果:
图片35.png










一、对比分析法
对比分析法是将两个或两个以上的数据进行比较,分析其中的差异,从而揭示这些事物的发展变化情况和规律。



######(绘制线形图)

#coding=utf-8
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高
plt.title("语文成绩的分析比较",fontsize=18,loc='center') #图形标题

plt.xlabel('姓名') #显示x轴名称
plt.ylabel('分数') #显示y轴名称

# 创建一个列表:(x轴的点的值)
x = ['李大杰','Jacky','Lily','Happy','Joe','Funny']

# 创建一个列表:(y轴的点的值)
y = [20,40,30,50,80,20]

## 绘制线形图:(使用plt.plot函数)
plt.plot(x,y,color='red',linewidth=1.0,marker='o',linestyle=':')

plt.grid(True,linestyle=':',color='purple',alpha=0.6) #显示网格线

plt.show()

脚本运行后的图形效果:
图片36.png



######(绘制线形图)

#coding=utf-8
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高
plt.title("语文成绩的分析比较",fontsize=18) #图形标题

plt.xlabel('- 姓名 -') #显示x轴名称
plt.ylabel('分数') #显示y轴名称

plt.subplots_adjust(left=0.1) #调整图表距左侧的空白

plt.tick_params(bottom=True,left=True) #底部刻度线显示,左边刻度线显示

# 创建一个元组:(x轴的点的值)
x = ['李大杰','Jacky','Lily','Happy','Joe','Funny']

# 创建一个元组:(y轴的点的值)
y = [20,40,30,50,80,20]

## 绘制线形图:(使用plt.plot函数)
plt.plot(x,y,color='red',linewidth=1.0,marker='o',linestyle=':')

plt.grid(True,linestyle=':',color='purple',alpha=0.6) #显示网格线

plt.show()

脚本运行后的图形效果:
图片37.png



######(绘制线形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高
plt.title("语文成绩的分析比较",fontsize=18,loc='left') #图形标题

plt.xlabel('- 姓名 -') #显示x轴名称
plt.ylabel('分数') #显示y轴名称

plt.subplots_adjust(left=0.2) #调整图表距左侧的空白

plt.tick_params(bottom=True,left=False) #底部刻度线显示,左边刻度线不显示

# 创建一个一维数组:(x轴的点的值)
x = np.array(['李大杰','Jacky','Lily','Happy','Joe','Funny'])

# 创建一个一维数组:(y轴的点的值)
y = np.array([20,40,30,50,80,20])

## 绘制线形图:(使用plt.plot函数)
plt.plot(x,y,color='red',linewidth=1.0,marker='o',linestyle=':')

plt.grid(True,linestyle=':',color='purple',alpha=0.6) #显示网格线

plt.show()

脚本运行后的图形效果:
图片38.png



######(绘制线形图)

#coding=utf-8
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

sns.set_style('darkgrid') #设置Seaborn的背景风格为darkgrid

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高
plt.title("语文成绩的分析比较",fontsize=18,loc='right') #图形标题

plt.xlabel('- 姓名 -') #显示x轴名称
plt.ylabel('分数') #显示y轴名称

plt.subplots_adjust(left=0.2) #调整图表距左侧的空白

xKey_1 = '李大杰'
xKey_2 = 'Jacky'
xKey_3 = 'Lily'
xKey_4 = 'Happy'
xKey_5 = 'Joe'
xKey_6 = 'Funny'

# 创建一个一维数组:(x轴的点的值)
x = np.array([xKey_1,xKey_2,xKey_3,xKey_4,xKey_5,xKey_6])

yKey_1 = 20
yKey_2 = 40
yKey_3 = 30
yKey_4 = 50
yKey_5 = 80
yKey_6 = 20.5

# 创建一个一维数组:(y轴的点的值)
y = np.array([yKey_1,yKey_2,yKey_3,yKey_4,yKey_5,yKey_6])

## 绘制线形图:(使用plt.plot函数)
plt.plot(x,y,color='red',linewidth=1.0,marker='o',linestyle=':')

plt.show()

脚本运行后的图形效果:
图片1.png



######(绘制线形图)

#coding=utf-8
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

sns.set_style('darkgrid') #设置Seaborn的背景风格为darkgrid

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高
plt.title("语文成绩的分析比较",fontsize=18,loc='right') #图形标题

plt.ylabel('分数') #显示y轴名称

plt.subplots_adjust(bottom=0.2) #调整图表距底部的空白

# 创建一个二维数组n_1 :
n_1 = np.array([['李大杰','Jacky','Lily','Happy','Joe','Funny'],[20,40,30,50,80,20]])

x = n_1[0] #二维数组n_1的第1行的数组
x1 = tuple(x) #转换为元组

y = map(int,n_1[1]) #把二维数组n_1的第2行的数组转换为整型
y1 = tuple(y) #转换为元组

## 绘制线形图:(使用plt.plot函数)
plt.plot(x1,y1,color='red',linewidth=1.0,marker='o',linestyle=':')

plt.show()

脚本运行后的图形效果:
图片2.png



######(绘制线形图)

#coding=utf-8
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

sns.set_style('darkgrid') #设置Seaborn的背景风格为darkgrid

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高
plt.title("语文成绩的分析比较",fontsize=18) #图形标题

plt.ylabel('分数') #显示y轴名称

# 创建一个二维数组n_1 :
n_1 = np.array([['李大杰','Jacky','Lily','Happy','Joe','Funny'],[20,40,30,50,80,20.5]])

x = n_1[0] #二维数组n_1的第1行的数组
x1 = list(x) #转换为列表

y = map(float,n_1[1]) #把二维数组n_1的第2行的数组转换为浮点型
y1 = list(y) #转换为列表

## 绘制线形图:(使用plt.plot函数)
plt.plot(x1,y1,color='red',linewidth=1.0,marker='o',linestyle=':')

plt.show()

脚本运行后的图形效果:
图片3.png



######(绘制竖向条形图)

#coding=utf-8
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.title("语文成绩的分析比较",fontsize=18,loc='center') #图形标题

plt.xlabel('姓名') #显示x轴名称
plt.ylabel('分数') #显示y轴名称

# 创建一个列表:(x轴的点的值)
x = ['李大杰','Jacky','Lily','Happy','Joe','Funny']

# 创建一个元组:(y轴的点的值)
y = (20,40,30,50,80,20)

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(x,y)

plt.show()

脚本运行后的图形效果:
图片4.png



######(绘制竖向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.title("语文成绩的分析比较",fontsize=18) #图形标题

plt.ylabel('分数') #显示y轴名称

plt.tick_params(bottom=False,left=False) #底部刻度线不显示,左边刻度线不显示

# 创建一个列表:(x轴的点的值)
x = ['李大杰','Jacky','Lily','Happy','Joe','Funny']

# 创建一个一维数组:(y轴的点的值)
y = np.array([20,40,30,50,80,20])

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(x,y)

plt.show()

脚本运行后的图形效果:
图片5.png



######(绘制竖向条形图)

#coding=utf-8
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.title("语文成绩的分析比较",fontsize=18) #图形标题

plt.ylabel('分数') #显示y轴名称

plt.subplots_adjust(left=0.2) #调整图表距左侧的空白

plt.tick_params(bottom=False,left=True) #底部刻度线不显示,左边刻度线显示

x = ['李大杰','Jacky','Lily','Happy','Joe','Funny'] #x轴的点的值

y = [20,40,30,50,80,20] #y轴的点的值

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(x,y,color='Turquoise') #设置柱子颜色为蓝绿色

plt.grid(axis='y',linestyle=':',color='purple',alpha=0.6) #显示网格线,但不显示网格线的y轴

plt.show()

脚本运行后的图形效果:
图片6.png



######(绘制竖向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import seaborn as sns

sns.set_style('darkgrid') #设置Seaborn的背景风格为darkgrid

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.title("语文成绩的分析比较",fontsize=18) #图形标题

plt.xlabel('- 姓名 -') #显示x轴名称
plt.ylabel('分数') #显示y轴名称

plt.subplots_adjust(bottom=0.2) #调整图表距底部的空白

x = ['李大杰','Jacky','Lily','Happy','Joe','Funny'] #x轴的点的值

y = [20,40,30,50,80,20] #y轴的点的值

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(x,y,color='Blue') #设置柱子颜色为蓝色

plt.show()

脚本运行后的图形效果:
图片7.png



######(绘制横向条形图)

#coding=utf-8
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.title("语文成绩的分析比较",fontsize=18) #图形标题

plt.xlabel('- 分数 -') #显示x轴名称
plt.ylabel('姓名') #显示y轴名称

x = ['李大杰','Jacky','Lily','Happy','Joe','Funny'] #x轴的点的值

y = [20,40,30,50,80,20] #y轴的点的值

## 绘制横向条形图:(使用plt.barh函数时,x轴、y轴的点的值会互换过来)
plt.barh(x,y)

plt.show()

脚本运行后的图形效果:
图片8.png



######(绘制横向条形图)

#coding=utf-8
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.title("语文成绩的分析比较",fontsize=18) #图形标题

plt.xlabel('- 分数 -') #显示x轴名称
plt.ylabel('姓名') #显示y轴名称

plt.subplots_adjust(left=0.2) #调整图表距左侧的空白

plt.tick_params(bottom=True,left=False) #底部刻度线显示,左边刻度线不显示

x = ['李大杰','Jacky','Lily','Happy','Joe','Funny'] #x轴的点的值

y = [20,40,30,50,80,20] #y轴的点的值

## 绘制横向条形图:(使用plt.barh函数时,x轴、y轴的点的值会互换过来)
plt.barh(x,y,color='Turquoise') #设置柱子颜色为蓝绿色

plt.show()

脚本运行后的图形效果:
图片9.png



######(绘制横向条形图)

#coding=utf-8
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.title("语文成绩的分析比较",fontsize=18) #图形标题

plt.ylabel('姓名') #显示y轴名称

x = ('李大杰','Jacky','Lily','Happy','Joe','Funny') #x轴的点的值

y = (20,40,30,50,80,20.5) #y轴的点的值

## 绘制横向条形图:(使用plt.barh函数时,x轴、y轴的点的值会互换过来)
plt.barh(x,y,color='blue') #设置柱子颜色为蓝色

plt.grid(axis='x',linestyle=':',color='purple',alpha=0.6) #显示网格线,但不显示网格线的x轴

plt.show()

脚本运行后的图形效果:
图片10.png



######(绘制横向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import seaborn as sns

sns.set_style('darkgrid') #设置Seaborn的背景风格为darkgrid

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.title("语文成绩的分析比较",fontsize=18) #图形标题

plt.xlabel('- 分数 -') #显示x轴名称
plt.ylabel('姓名') #显示y轴名称

x = ['李大杰','Jacky','Lily','Happy','Joe','Funny'] #x轴的点的值

y = [20,40,30,50,80,20.5] #y轴的点的值

## 绘制横向条形图:(使用plt.barh函数时,x轴、y轴的点的值会互换过来)
plt.barh(x,y,color='green') #设置柱子颜色为绿色

plt.show()

脚本运行后的图形效果:
图片11.png



######(绘制横向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import seaborn as sns

sns.set_style('darkgrid') #设置Seaborn的背景风格为darkgrid

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.title("语文成绩的分析比较",fontsize=18) #图形标题

plt.ylabel('姓名') #显示y轴名称

plt.subplots_adjust(left=0.2) #调整图表距左侧的空白

plt.tick_params(bottom=True,left=True) #底部刻度线显示,左边刻度线显示

x = ['李大杰','Jacky','Lily','Happy','Joe','Funny'] #x轴的点的值

y = [20,40,30,50,80,20.5] #y轴的点的值

## 绘制横向条形图:(使用plt.barh函数时,x轴、y轴的点的值会互换过来)
plt.barh(x,y,color='Green') #设置柱子颜色为绿色

plt.show()

脚本运行后的图形效果:
图片12.png



######(绘制横向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import seaborn as sns

sns.set_style('whitegrid') #设置Seaborn的背景风格为whitegrid

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.title("语文成绩的分析比较",fontsize=18) #图形标题

plt.ylabel('- 姓名 -') #显示y轴名称

plt.subplots_adjust(left=0.2,bottom=0.2) #分别调整图表距左侧、底部的空白

plt.tick_params(bottom=True,left=False) #底部刻度线显示,左边刻度线不显示

x = ['李大杰','Jacky','Lily','Happy','Joe','Funny'] #x轴的点的值

y = (20,40,30,50,80,20.5) #y轴的点的值

## 绘制横向条形图:(使用plt.barh函数时,x轴、y轴的点的值会互换过来)
plt.barh(x,y,color='Turquoise') #设置柱子颜色为蓝绿色

plt.show()

脚本运行后的图形效果:
图片13.png





二、趋势分析法
趋势分析法是指将两期报告中的某一指标进行对比,确定其增减变动的方向、数额和幅度,以掌握该指标的变动趋势。趋势分析法中的指标,有同比分析、定比分析、环比分析。

同比、定比和环比的概念:
■ 同比:本期数据与历史同时期数据比较。例如,2024年2月份与2022年2月份相比较。
■ 定比:本期数据与特定时期数据比较。例如,2024年2月与2022年8月份相比较。
■ 环比:本期数据与上期数据比较。例如,2024年2月份与2024年1月份相比较。

同比、定比和环比的计算公式:
■ 同比增长率=(本期数-同期数)/同期数×100%
■ 定比增长率=(本期数-特定期数)/特定期数×100%
■ 环比增长率=(本期数-上期数)/上期数×100%



######(绘制竖向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各城市的图书的同比分析比较") #图形标题

plt.xlabel('- 城市 -') #显示x轴名称
plt.ylabel('销售数量(册)') #显示y轴名称

Labels = ['广州市','上海市','深圳市','北京市'] #x轴的点的值
N = len(Labels)
X = np.arange(N)

y1 = [20,40,50,55] #2024-02的销售量的值
y2 = [30,40,40,50] #2022-02的销售量的值

bar_width = 0.3 #条形的宽度

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(X, y1, bar_width,label='2024-02',color='red')
plt.bar(X + bar_width, y2, bar_width, label='2022-02',tick_label=Labels,color='blue')

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:
图片14.png



######(绘制竖向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各城市的图书的同比分析比较") #图形标题

plt.ylabel('销售数量(册)') #显示y轴名称

Labels = ['广州市','上海市','深圳市','北京市'] #x轴的点的值
N = len(Labels)
X = np.arange(N)

y1 = [20,40,50,55] #2024-02的销售量的值
y2 = [30,40,40,50] #2022-02的销售量的值

bar_width = 0.3 #条形的宽度

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(X, y1, bar_width,label='2024-02',color='red')
plt.bar(X + bar_width, y2, bar_width, label='2022-02',tick_label=Labels,color='blue')

#设置每个柱子上的文本标签:(显示2024-02的销售量的值)
for a,b in zip(X,y1):
        plt.text(a,b,b,ha='center',va='bottom',fontsize=9,color='black',alpha=0.9)

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:
图片15.png



######(绘制竖向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各城市的图书的同比分析比较") #图形标题

plt.ylabel('销售数量(册)') #显示y轴名称

Labels = ['广州市','上海市','深圳市','北京市'] #x轴的点的值
N = len(Labels)
X = np.arange(N)

y1 = [20,40,50,55] #2024-02的销售量的值
y2 = [30,40,40,50] #2022-02的销售量的值

Result_1 = (np.subtract(y1,y2)/y2)*100 #同比增长率=(本期数-同期数)/同期数×100%

bar_width = 0.3 #条形的宽度

plt.bar(X, y1, bar_width,label='2024-02',color='red')
plt.bar(X + bar_width, y2, bar_width, label='2022-02',tick_label=Labels,color='blue')

#设置每个柱子上的文本标签:(显示同比增长率的值)
for a,b in zip(X,Result_1):
        plt.text(a,b,'%.1f%%'%b,ha='center',va='bottom',fontsize=11,color='black',alpha=0.9) #百分比保留一位小数

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:(当同比增长率为负数时,其值是不显示的)
图片16.png



######(绘制竖向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各城市的图书的同比分析比较") #图形标题

plt.ylabel('销售数量(册)') #显示y轴名称

Labels = ['广州市','上海市','深圳市','北京市'] #x轴的点的值
N = len(Labels)
X = np.arange(N)

y1 = [20,40,50,55] #2024-02的销售量的值
y2 = [30,40,40,50] #2022-02的销售量的值

y1 = np.array(y1) #转换为一维数组
y2 = np.array(y2) #转换为一维数组

Result_1 = ((y1 - y2)/y2)*100 #同比增长率=(本期数-同期数)/同期数×100%

bar_width = 0.3 #条形的宽度

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(X, y1, bar_width,label='2024-02',color='red')
plt.bar(X + bar_width, y2, bar_width, label='2022-02',tick_label=Labels,color='blue')

#设置每个柱子上的文本标签:(显示2024-02的销售量的值)
for a,b in zip(X,y1):
        plt.text(a,b,b,ha='center',va='bottom',fontsize=9,color='black',alpha=0.9)
       
#设置每个柱子上的文本标签:(显示同比增长率的值)
for a,b in zip(X,Result_1):
        plt.text(a,b,'%.2f%%'%b,ha='center',va='bottom',fontsize=11,color='black',alpha=0.9) #百分比保留两位小数

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:(当同比增长率为负数时,其值是不显示的)
图片17.png





######(绘制竖向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各城市的图书的定比分析比较") #图形标题

plt.ylabel('销售数量(册)') #显示y轴名称

Labels = ['广州市','上海市','深圳市','北京市'] #x轴的点的值
N = len(Labels)
X = np.arange(N)

y1 = [20,40,50,55] #2024-02的销售量的值
y2 = [30,40,40,50] #2022-02的销售量的值

bar_width = 0.3 #条形的宽度

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(X, y1, bar_width,label='2024-02',color='red')
plt.bar(X + bar_width, y2, bar_width, label='2022-08',tick_label=Labels,color='blue')

#设置每个柱子上的文本标签:(显示2022-08的销售量的值)
for a,b in zip(X,y2):
        plt.text(a+bar_width,b,b,ha='center',va='bottom',fontsize=9,color='blue',alpha=0.9)

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:
图片18.png



######(绘制竖向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各城市的图书的定比分析比较") #图形标题

plt.ylabel('销售数量(册)') #显示y轴名称

Labels = ['广州市','上海市','深圳市','北京市'] #x轴的点的值
N = len(Labels)
X = np.arange(N)

y1 = [20,40,50,55] #2024-02的销售量的值
y2 = [30,40,40,50] #2022-02的销售量的值

bar_width = 0.3 #条形的宽度

plt.bar(X, y1, bar_width,label='2024-02',color='red')
plt.bar(X + bar_width, y2, bar_width, label='2022-08',tick_label=Labels,color='blue')

#设置每个柱子上的文本标签:(显示2024-02的销售量的值)
for a,b in zip(X,y1):
        plt.text(a,b,b,ha='center',va='bottom',fontsize=9,color='black',alpha=0.9)
       
#设置每个柱子上的文本标签:(显示2022-08的销售量的值)
for a,b in zip(X,y2):
        plt.text(a+bar_width,b,b,ha='center',va='bottom',fontsize=9,color='blue',alpha=0.9)

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:
图片19.png



######(绘制竖向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各城市的图书的定比分析比较") #图形标题

plt.ylabel('销售数量(册)') #显示y轴名称

Labels = ['广州市','上海市','深圳市','北京市'] #x轴的点的值
N = len(Labels)
X = np.arange(N)

y1 = [20,40,50,55] #2024-02的销售量的值
y2 = [30,40,40,50] #2022-02的销售量的值

Result_1 = (np.subtract(y1,y2)/y2)*100 #定比增长率=(本期数-特定期数)/特定期数×100%

bar_width = 0.3 #条形的宽度

plt.bar(X, y1, bar_width,label='2024-02',color='red')
plt.bar(X + bar_width, y2, bar_width, label='2022-08',tick_label=Labels,color='blue')

#设置每个柱子上的文本标签:(显示2024-02的销售量的值)
for a,b in zip(X,y1):
        plt.text(a,b,b,ha='center',va='bottom',fontsize=9,color='black',alpha=0.9)
       
#设置每个柱子上的文本标签:(显示2022-08的销售量的值)
for a,b in zip(X,y2):
        plt.text(a+bar_width,b,b,ha='center',va='bottom',fontsize=9,color='blue',alpha=0.9)
       
#设置每个柱子上的文本标签:(显示定比增长率的值)
for a,b in zip(X,Result_1):
        plt.text(a,b,'%.0f%%'%b,ha='center',va='bottom',fontsize=11,color='black',alpha=0.9) #百分比不保留小数

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:(当定比增长率为负数时,其值是不显示的)
图片20.png



######(绘制竖向条形图+线形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各城市的图书的定比分析比较") #图形标题

plt.ylabel('销售数量(册)') #显示y轴名称

x = ['广州市','上海市','深圳市','北京市'] #x轴的点的值

y1 = [20,40,50,55] #2024-02的销售量的值
y2 = [30,40,40,50] #2022-02的销售量的值

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(x, y1,label='2024-02',color='red')

## 绘制线形图:(使用plt.plot函数)
plt.plot(x,y2,label='2022-02',color='blue',linewidth=1.0,marker='o',linestyle='-.')

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:
图片21.png



######(绘制竖向条形图+线形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各城市的图书的定比分析比较") #图形标题

plt.ylabel('销售数量(册)') #显示y轴名称

x = ['广州市','上海市','深圳市','北京市'] #x轴的点的值

y1 = [20,40,50,55] #2024-02的销售量的值
y2 = [30,40,40,50] #2022-02的销售量的值

y1 = np.array(y1) #转换为一维数组
y2 = np.array(y2) #转换为一维数组

Result_1 = ((y1-y2)/y2)*100 #定比增长率=(本期数-特定期数)/特定期数×100%

bar_width = 0.3 #条形的宽度

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(x, y1,label='2024-02',color='red')

#设置每个柱子上的文本标签:(显示定比增长率的值)
for a,b in zip(x,Result_1):
        plt.text(a,b,'%.3f%%'%b,ha='center',va='bottom',fontsize=11,color='black',alpha=0.9) #百分比保留三位小数
       
## 绘制线形图:(使用plt.plot函数)
plt.plot(x,y2,label='2022-02',color='blue',linewidth=1.0,marker='o',linestyle='-.')

plt.legend() #显示图例(label)

plt.grid(axis='y',linestyle=':',color='purple',alpha=0.6) #显示网格线,但不显示网格线的y轴

plt.show()

脚本运行后的图形效果:(当定比增长率为负数时,其值是不显示的)
图片22.png





######(绘制竖向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各城市的图书的环比分析比较") #图形标题

plt.ylabel('销售数量(册)') #显示y轴名称

Labels = ['广州市','上海市','深圳市','北京市'] #x轴的点的值
N = len(Labels)
X = np.arange(N)

y1 = [30,40,40,50] #2024-01的销售量的值
y2 = [20,40,50,55] #2024-02的销售量的值

bar_width = 0.3 #条形的宽度

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(X, y1, bar_width,label='2024-01',color='blue')
plt.bar(X + bar_width, y2, bar_width, label='2024-02',tick_label=Labels,color='red')

#设置每个柱子上的文本标签:(显示2024-01的销售量的值)
for a,b in zip(X,y1):
        plt.text(a,b,b,ha='center',va='bottom',fontsize=9,color='blue',alpha=0.9)
       
#设置每个柱子上的文本标签:(显示2024-02的销售量的值)
for a,b in zip(X,y2):
        plt.text(a+bar_width,b,b,ha='center',va='bottom',fontsize=9,color='black',alpha=0.9)

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:
图片23.png



######(绘制竖向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各城市的图书的环比分析比较") #图形标题

plt.ylabel('销售数量(册)') #显示y轴名称

Labels = ['广州市','上海市','深圳市','北京市'] #x轴的点的值
N = len(Labels)
X = np.arange(N)

y1 = [30,40,40,50] #2024-01的销售量的值
y2 = [20,40,50,55] #2024-02的销售量的值

Result_1 = (np.subtract(y2,y1)/y1)*100 #环比增长率=(本期数-上期数)/上期数×100%

bar_width = 0.4 #条形的宽度

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(X, y1, bar_width,label='2024-01',color='blue')
plt.bar(X + bar_width, y2, bar_width, label='2024-02',tick_label=Labels,color='red')

#设置每个柱子上的文本标签:(显示2024-01的销售量的值)
for a,b in zip(X,y1):
        plt.text(a,b,b,ha='center',va='bottom',fontsize=9,color='blue',alpha=0.9)
       
#设置每个柱子上的文本标签:(显示2024-02的销售量的值)
for a,b in zip(X,y2):
        plt.text(a+bar_width,b,b,ha='center',va='bottom',fontsize=9,color='black',alpha=0.9)
       
#设置每个柱子上的文本标签:(显示环比增长率的值)
for a,b in zip(X,Result_1):
        plt.text(a+bar_width,b,'%.1f%%'%b,ha='center',va='bottom',fontsize=11,color='black',alpha=0.9) #百分比保留一位小数

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:(当环比增长率为负数时,其值是不显示的)
图片24.png



######(绘制竖向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各城市的图书的环比分析比较") #图形标题

plt.ylabel('销售数量(册)') #显示y轴名称

Labels = ['广州市','上海市','深圳市','北京市'] #x轴的点的值
N = len(Labels)
X = np.arange(N)

y1 = (30,40,40,50) #2024-01的销售量的值
y2 = (20,40,50,55) #2024-02的销售量的值

Result_1 = (np.subtract(y2,y1)/y1)*100 #环比增长率=(本期数-上期数)/上期数×100%

bar_width = 0.4 #条形的宽度

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(X, y1, bar_width,label='2024-01',color='blue')
plt.bar(X + bar_width, y2, bar_width, label='2024-02',tick_label=Labels,color='red')
       
#设置每个柱子上的文本标签:(显示2024-02的销售量的值)
for a,b in zip(X,y2):
        plt.text(a+bar_width,b,b,ha='center',va='bottom',fontsize=9,color='black',alpha=0.9)
       
#设置每个柱子上的文本标签:(显示环比增长率的值)
for a,b in zip(X,Result_1):
        plt.text(a+bar_width,b,'%.2f%%'%b,ha='center',va='bottom',fontsize=11,color='black',alpha=0.9) #百分比保留两位小数

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:(当环比增长率为负数时,其值是不显示的)
图片25.png



######(绘制竖向条形图+线形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各城市的图书的环比分析比较") #图形标题

plt.ylabel('销售数量(册)') #显示y轴名称

x = ['广州市','上海市','深圳市','北京市'] #x轴的点的值

y1 = [30,40,40,50] #2024-01的销售量的值
y2 = [20,40,50,55] #2024-02的销售量的值

y1 = np.array(y1) #转换为一维数组
y2 = np.array(y2) #转换为一维数组

Result_1 = (np.subtract(y2,y1)/y1)*100 #环比增长率=(本期数-上期数)/上期数×100%

bar_width = 0.4 #条形的宽度

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(x, y2,label='2024-02',color='red')

#设置每个柱子上的文本标签:(显示环比增长率的值)
for a,b in zip(x,Result_1):
        plt.text(a,b,'%.3f%%'%b,ha='center',va='bottom',fontsize=15,color='white',alpha=0.9) #百分比保留三位小数
       
## 绘制线形图:(使用plt.plot函数)
plt.plot(x,y1,label='2024-01',color='blue',linewidth=1.0,marker='o',linestyle='-')

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:(当环比增长率为负数时,其值是不显示的)
图片26.png



######(绘制竖向条形图+线形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

import seaborn as sns

sns.set_style('darkgrid') #设置Seaborn的背景风格为darkgrid

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各城市的图书的环比分析比较") #图形标题

plt.ylabel('销售数量(册)') #显示y轴名称

x = ['广州市','上海市','深圳市','北京市'] #x轴的点的值

y1 = (30,40,40,50) #2024-01的销售量的值
y2 = (20,40,50,55) #2024-02的销售量的值

y1 = np.array(y1) #转换为一维数组
y2 = np.array(y2) #转换为一维数组

Result_1 = ((y2 - y1) / y1) * 100 #环比增长率=(本期数-上期数)/上期数×100%

bar_width = 0.4 #条形的宽度

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(x, y2,label='2024-02',color='red')

#设置每个柱子上的文本标签:(显示环比增长率的值)
for a,b in zip(x,Result_1):
        plt.text(a,b,'%.0f%%'%b,ha='center',va='bottom',fontsize=15,color='white',alpha=0.9) #百分比不保留小数
       
## 绘制线形图:(使用plt.plot函数)
plt.plot(x,y1,label='2024-01',color='blue',linewidth=1.0,marker='o',linestyle='-')

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:(当环比增长率为负数时,其值是不显示的)
图片27.png



######(绘制竖向条形图+线形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

import seaborn as sns

sns.set_style('darkgrid') #设置Seaborn的背景风格为darkgrid

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各城市的图书的环比分析比较") #图形标题

plt.ylabel('销售数量(册)') #显示y轴名称

x = ['广州市','上海市','深圳市','北京市'] #x轴的点的值

y1 = np.array([30,40,40,50]) #2024-01的销售量的值(一维数组)
y2 = np.array([20,40,50,55]) #2024-02的销售量的值(一维数组)

Result_1 = ((y2 - y1) / y1) * 100 #环比增长率=(本期数-上期数)/上期数×100%

bar_width = 0.4 #条形的宽度

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(x, y2,label='2024-02',color='red')

#设置每个柱子上的文本标签:(显示2024-02的销售量的值)
for a,b in zip(x,y2):
        plt.text(a,b,b,ha='center',va='bottom',fontsize=13,color='black',alpha=0.9)

#设置每个柱子上的文本标签:(显示环比增长率的值)
for a,b in zip(x,Result_1):
        plt.text(a,b,'%.2f%%'%b,ha='center',va='bottom',fontsize=16,color='black',alpha=0.9) #百分比保留两位小数
       
## 绘制线形图:(使用plt.plot函数)
plt.plot(x,y1,label='2024-01',color='blue',linewidth=1.0,marker='+',linestyle='-')

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:(当环比增长率为负数时,其值是不显示的)
图片1.png





三、贡献度分析法
产品的投入和产出之间,本来就存在着无法解释的不平衡。
各产品的累计贡献率的计算公式:
■ 累计贡献率=(累加销售收入/销售总收入)×100%


######(绘制线形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各产品的贡献度分析") #图形标题

x = ['苹果','香蕉','草莓','橙子'] #x轴的点的值

y1 = [30,40,40,50] #各产品销售量的值

Result_1 = np.divide(y1,np.sum(y1))*100 #累计贡献率=(累加销售收入/销售总收入)×100%
print(Result_1)
print(type(Result_1))

print("-" * 3)

Result_2 = list(Result_1) #转换为列表
print(Result_2)
print(type(Result_2))

## 设置每个数据点上的文本标签:(y轴的点的值)
for a,b in zip(x,Result_2):
        plt.text(a,b,'%.2f%%'%b,ha='center',va='bottom',fontsize=14) #百分比保留两位小数
       
## 绘制线形图:(使用plt.plot函数)
plt.plot(x,Result_2,label='2024-01',color='red',linewidth=1.0,marker='o',linestyle='-')

plt.legend() #显示图例(label)

plt.show()

脚本运行的结果:
图片2.png

脚本运行后的图形效果:
图片3.png



######(绘制线形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各产品的贡献度分析") #图形标题

x = ['苹果','香蕉','草莓','橙子'] #x轴的点的值

y1 = [30,40,40,50] #各产品销售量的值

Result_1 = np.divide(y1,np.sum(y1))*100 #累计贡献率=(累加销售收入/销售总收入)×100%
print(Result_1)
print(type(Result_1))

print("-" * 3)

Result_2 = tuple(Result_1) #转换为元组
print(Result_2)
print(type(Result_2))

## 设置每个数据点上的文本标签:(y轴的点的值)
for a,b in zip(x,Result_2):
        plt.text(a,b+0.1,'%.2f%%'%b,ha='center',va='bottom',fontsize=9) #这里使用“b+0.1”会让文本标签往上移动一点
       
## 绘制线形图:(使用plt.plot函数)
plt.plot(x,Result_2,label='2024-01',color='red',linewidth=1.0,marker='o',linestyle='-')

plt.legend() #显示图例(label)

plt.show()

脚本运行的结果:
图片4.png

脚本运行后的图形效果:
图片5.png



######(绘制线形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

sns.set_style('whitegrid') #设置Seaborn的背景风格为whitegrid

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各产品的贡献度分析") #图形标题

plt.xlabel('- 产品名称 -') #显示x轴名称
plt.ylabel('百分比') #显示y轴名称

x = ['苹果','香蕉','草莓','橙子'] #x轴的点的值

y1 = [30,40,40,50] #各产品销售量的值

Result_1 = np.divide(y1,np.sum(y1))*100 #累计贡献率=(累加销售收入/销售总收入)×100%
print(Result_1)
print(type(Result_1))

print("-" * 3)

Result_2 = tuple(Result_1) #转换为元组
print(Result_2)
print(type(Result_2))

## 设置每个数据点上的文本标签:(y轴的点的值)
for a,b in zip(x,Result_2):
        plt.text(a,b+0.2,'%.2f%%'%b,ha='center',va='bottom',fontsize=14) #这里使用“b+0.2”会让文本标签往上移动一点
       
## 绘制线形图:(使用plt.plot函数)
plt.plot(x,Result_2,label='2024-01',color='red',linewidth=1.0,marker='o',linestyle='-')

plt.legend() #显示图例(label)

plt.show()

脚本运行的结果:
图片6.png

脚本运行后的图形效果:
图片7.png



######(绘制竖向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

sns.set_style('whitegrid') #设置Seaborn的背景风格为whitegrid

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("各产品的贡献度分析") #图形标题

plt.xlabel('- 产品名称 -') #显示x轴名称
plt.ylabel('百分比') #显示y轴名称

x = ['苹果','香蕉','草莓','橙子'] #x轴的点的值

y1 = [30,40,40,50] #各产品销售量的值
y1 = np.array(y1) #转换为一维数组

Result_1 = (y1 / np.sum(y1))*100 #累计贡献率=(累加销售收入/销售总收入)×100%
print(Result_1)
print(type(Result_1))

print("-" * 3)

Result_2 = list(Result_1) #转换为列表
print(Result_2)
print(type(Result_2))

## 设置每个数据点上的文本标签:(y轴的点的值)
for a,b in zip(x,Result_2):
        plt.text(a,b+0.1,'%.2f%%'%b,ha='center',va='bottom',fontsize=14) #这里使用“b+0.1”会让文本标签往上移动一点

bar_width = 0.4 #条形的宽度

## 绘制竖向条形图:(使用plt.bar函数)
plt.bar(x,Result_2,bar_width,label='2024-01',color='Turquoise') #设置柱子颜色为蓝绿色

plt.legend() #显示图例(label)

plt.show()

脚本运行的结果:
图片8.png

脚本运行后的图形效果:
图片9.png





四、差异化分析法
通过差异化分析,比较不同事物之间在某个指标上的差异,可以根据差异定制不同的策略。



######(绘制线形图)

#coding=utf-8
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("学生成绩性别差异分析") #图形标题

plt.ylabel('- 分数 -') #显示y轴名称

x = ['语文成绩','数学成绩','物理成绩','化学成绩'] #x轴的点的值

## 绘制线形图:(使用plt.plot函数)
y1 = [20,50,70,80] #第一条数据线
plt.plot(x,y1,label='女生',color='red',linewidth=1.0,marker='o',linestyle='-.')

y2 = [30,40,40,50] #第二条数据线
plt.plot(x,y2,label='男生',color='blue',linewidth=1.0,marker='o',linestyle='-')

plt.legend() #显示图例(label)

plt.grid(True,linestyle=':',color='purple',alpha=0.6) #显示网格线

plt.show()

脚本运行后的图形效果:
图片10.png



######(绘制雷达图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 数据准备:
Labels = ['语文','数学','物理','化学']
Values_1 = [20,50,70,80]

# 计算角度:
num_Labels = len(Labels)
Angles = np.linspace(0, 2 * np.pi, num_Labels, endpoint=False).tolist()

# 绘制雷达图:
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))
Values_1 += Values_1[:1]
Angles += Angles[:1]
ax.fill(Angles, Values_1, color='Skyblue', alpha=0.25)

# 添加标签和标题:
ax.set_thetagrids(np.degrees(Angles[:-1]), Labels)
ax.set_title('女生成绩差异分析')

plt.show() #显示图形

脚本运行后的图形效果:
图片11.png



######(绘制雷达图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

sns.set_style('darkgrid') #设置Seaborn的背景风格为darkgrid

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 数据准备:
Labels = ['语文','数学','物理','化学']
Values_1 = [20,50,70,80]

# 计算角度:
num_Labels = len(Labels)
Angles = np.linspace(0, 2 * np.pi, num_Labels, endpoint=False).tolist()

# 绘制雷达图:
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))
Values_1 += Values_1[:1]
Angles += Angles[:1]
ax.fill(Angles, Values_1, color='skyblue', alpha=0.25, label='女生')

# 添加标签和标题:
ax.set_thetagrids(np.degrees(Angles[:-1]), Labels)
ax.set_title('女生成绩差异分析')

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:
图片12.png



######(绘制雷达图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 数据准备:
Labels = ['语文','数学','物理','化学']
Values_1 = [20,50,70,80]
Values_2 = [30,40,40,50]

# 计算角度:
num_Labels = len(Labels)
Angles = np.linspace(0, 2 * np.pi, num_Labels, endpoint=False).tolist()

# 绘制雷达图:
fig, ax = plt.subplots(figsize=(8, 6), subplot_kw=dict(polar=True))
Values_1 += Values_1[:1]
Angles += Angles[:1]
ax.fill(Angles, Values_1, color='red', alpha=0.25, label='女生')

Values_2 += Values_2[:1]
ax.fill(Angles, Values_2, color='blue', alpha=0.25, label='男生')

# 添加标签和标题:
ax.set_thetagrids(np.degrees(Angles[:-1]), Labels)
ax.set_title('学生成绩性别差异分析')

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:
图片13.png



######(绘制雷达图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

sns.set_style('darkgrid') #设置Seaborn的背景风格为darkgrid

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 数据准备:
Labels = ['语文','数学','物理','化学']
Values_1 = [20,50,70,80]
Values_2 = [30,40,40,50]

# 计算角度:
num_Labels = len(Labels)
Angles = np.linspace(0, 2 * np.pi, num_Labels, endpoint=False).tolist()

# 绘制雷达图:
fig, ax = plt.subplots(figsize=(8, 6), subplot_kw=dict(polar=True))
Values_1 += Values_1[:1]
Angles += Angles[:1]
ax.fill(Angles, Values_1, color='red', alpha=0.25, label='女生')

Values_2 += Values_2[:1]
ax.fill(Angles, Values_2, color='blue', alpha=0.25, label='男生')

# 添加标签和标题:
ax.set_thetagrids(np.degrees(Angles[:-1]), Labels)
ax.set_title('学生成绩性别差异分析')

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:
图片14.png



######(绘制线形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

sns.set_style('whitegrid') #设置Seaborn的背景风格为whitegrid

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("班级成绩差异分析") #图形标题

x = ['语文成绩','数学成绩','物理成绩','化学成绩'] #x轴的点的值

## 绘制线形图:(使用plt.plot函数)
y1 = [20,50,70,80] #第一条数据线
plt.plot(x,y1,label='三年一班',color='red',linewidth=1.0,marker='o',linestyle='-.')

y2 = [30,40,40,50] #第二条数据线
plt.plot(x,y2,label='三年二班',color='blue',linewidth=1.0,marker='o',linestyle='-')

y3 = [35,45,40,55] #第三条数据线
plt.plot(x,y3,label='三年三班',color='green',linewidth=1.0,marker='o',linestyle='--')

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:
图片15.png



######(绘制雷达图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 数据准备:
Labels = ['语文','数学','物理','化学']
Values_1 = [20,50,70,80]
Values_2 = [30,40,40,50]
Values_3 = [35,45,40,55]

# 计算角度:
num_Labels = len(Labels)
Angles = np.linspace(0, 2 * np.pi, num_Labels, endpoint=False).tolist()

# 绘制雷达图:
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))
Values_1 += Values_1[:1]
Angles += Angles[:1]
ax.fill(Angles, Values_1, color='red', alpha=0.25, label='三年一班')

Values_2 += Values_2[:1]
ax.fill(Angles, Values_2, color='blue', alpha=0.25, label='三年二班')

Values_3 += Values_2[:1]
ax.fill(Angles, Values_3, color='green', alpha=0.25, label='三年三班')

# 添加标签和标题:
ax.set_thetagrids(np.degrees(Angles[:-1]), Labels)
ax.set_title('班级成绩差异分析')

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:
图片16.png



######(绘制雷达图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

sns.set_style('whitegrid') #设置Seaborn的背景风格为whitegrid

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 数据准备:
Labels = ['语文','数学','物理','化学']
Values_1 = [20,50,70,80]
Values_2 = [30,40,40,50]
Values_3 = [35,45,40,55]

# 计算角度:
num_Labels = len(Labels)
Angles = np.linspace(0, 2 * np.pi, num_Labels, endpoint=False).tolist()

# 绘制雷达图:
fig, ax = plt.subplots(figsize=(8, 6), subplot_kw=dict(polar=True))
Values_1 += Values_1[:1]
Angles += Angles[:1]
ax.fill(Angles, Values_1, color='red', alpha=0.25, label='三年一班')

Values_2 += Values_2[:1]
ax.fill(Angles, Values_2, color='blue', alpha=0.25, label='三年二班')

Values_3 += Values_2[:1]
ax.fill(Angles, Values_3, color='green', alpha=0.25, label='三年三班')

# 添加标签和标题:
ax.set_thetagrids(np.degrees(Angles[:-1]), Labels)
ax.set_title('班级成绩差异分析')

plt.legend() #显示图例(label)

plt.show()

脚本运行后的图形效果:
图片17.png





五、相关性分析法
相关性分析是指对两组具备相关关系的数据进行分析,从而衡量两组数据之间的相关程度、密切程度。
如果一组数据的改变引发了另一组数据朝相同方向变化,那么这两组数据则存在正相关性。
如果一组数据的改变引发了另一组数据朝相反方向变化,那么这两组数据则存在负相关性。



######(绘制线形图)

#coding=utf-8
import matplotlib.pyplot as plt
import seaborn as sns

import warnings
warnings.filterwarnings('ignore') #去除在使用sns下的函数时出现的那些警告

sns.set_style('whitegrid') #设置Seaborn的背景风格为whitegrid

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.xlabel('- 费用成本(元) -') #显示x轴名称
plt.ylabel('广告展现量(次)') #显示y轴名称

plt.title("费用成本与广告展现量相关性分析") #图形标题

xKey_1 = 10000
xKey_2 = 20000
xKey_3 = 30000
xKey_4 = 40000

x = [xKey_1,xKey_2,xKey_3,xKey_4] #x轴的点的值

yKey_1 = 200
yKey_2 = 500
yKey_3 = 700
yKey_4 = 800

y = [yKey_1,yKey_2,yKey_3,yKey_4] #y轴的点的值

## 绘制线形图:(使用sns.lineplot函数)
sns.lineplot(x,y,color='red',linewidth=1.0,marker='o',linestyle='-.')

plt.show()

脚本运行后的图形效果:
图片19.png



######(绘制竖向条形图)

#coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

import warnings
warnings.filterwarnings('ignore') #去除在使用sns下的函数时出现的那些警告

sns.set_style('whitegrid') #设置Seaborn的背景风格为whitegrid

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("费用成本与广告展现量相关性分析") #图形标题

plt.xlabel('- 费用成本(元) -') #显示x轴名称
plt.ylabel('广告展现量(次)') #显示y轴名称

xKey_1 = 10000
xKey_2 = 20000
xKey_3 = 30000
xKey_4 = 40000

x = [xKey_1,xKey_2,xKey_3,xKey_4] #x轴的点的值

yKey_1 = 800
yKey_2 = 700
yKey_3 = 500
yKey_4 = 200

y = [yKey_1,yKey_2,yKey_3,yKey_4] #y轴的点的值

## 绘制竖向条形图:(使用sns.barplot函数)
sns.barplot(x,y)

plt.show()

脚本运行后的图形效果:
图片20.png





六、时间序列分析法
根据照时间顺序排列的一组数据,找出其中的发展变化规律,从而预测未来的走势。



######(绘制线形图)

#coding=utf-8
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("年度增长趋势分析") #图形标题

xKey_1 = '2020'
xKey_2 = '2021'
xKey_3 = '2022'
xKey_4 = '2023'

x = [xKey_1,xKey_2,xKey_3,xKey_4] #x轴的点的值

yKey_1 = 200
yKey_2 = 500
yKey_3 = 400
yKey_4 = 800

y = [yKey_1,yKey_2,yKey_3,yKey_4] #y轴的点的值

## 绘制线形图:(使用plt.plot函数)
plt.plot(x,y,color='red',linewidth=1.0,marker='o',linestyle='-.')

plt.xlabel('- 年度 -') #显示x轴名称
plt.ylabel('年度收入额(元)') #显示y轴名称

plt.grid(True,linestyle=':',color='purple',alpha=0.6) #显示网格线

plt.show()

脚本运行后的图形效果:
图片21.png



######(绘制线形图)

#coding=utf-8
import matplotlib.pyplot as plt
import seaborn as sns

import warnings
warnings.filterwarnings('ignore') #去除在使用sns下的函数时出现的那些警告

sns.set_style('whitegrid') #设置Seaborn的背景风格为whitegrid

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(8,6)) #自定义窗体的宽和高

plt.title("2023年的季节性波动分析") #图形标题

xKey_1 = '第一季度'
xKey_2 = '第二季度'
xKey_3 = '第三季度'
xKey_4 = "第四季度"

x = [xKey_1,xKey_2,xKey_3,xKey_4] #x轴的点的值

yKey_1 = 200
yKey_2 = 500
yKey_3 = 400
yKey_4 = 800

y = [yKey_1,yKey_2,yKey_3,yKey_4] #y轴的点的值

## 绘制线形图:(使用sns.lineplot函数)
sns.lineplot(x,y,color='red',linewidth=1.0,marker='o',linestyle='-.')

plt.xlabel('- 季度 -') #显示x轴名称
plt.ylabel('季度收入额(元)') #显示y轴名称

plt.show()

脚本运行后的图形效果:
图片22.png

返回列表