python笔记31:数据分析之矩阵分析
温馨提示
- 这里会涉及到数据可视化,大家对它一眼带过即可,关于数据可视化的内容,后续笔记会做更详细的记录
- 你可以下载下面例子中的csv文件,然后把源代码拷贝到您的python编辑器,修改csv文件的路径,即可运行程序
# -*- coding: utf-8 -*-
#1.概念:矩阵分析,是指根据事物(如产品,服务等)的两个重要属性(指标)作为分析的依据,进行关联分析,找出解决
#问题的一种分析方法。
#矩阵分析法在解决问题和资源分配时,为决策者提供重要的参考依据,先解决主要矛盾,再解决次要矛盾,有利于提高工作效率,有
#利于决策者进行资源的优化配置。
#如何使用python进行矩阵分析:
import pandas
import matplotlib
import matplotlib.pyplot as plt
#使用RGB的方式定义好主题颜色:
mainColor = (42/256, 87/256, 141/256, 1);
#设置字体:在画图的时候使用中文字体(毕竟python是外国人开发的语言,默认使用的不是中文,所以当我们需要在图形中展示中文的时候,就需要设置为中文字体)
font = {
'family':'SimHei',
'size':20
}
matplotlib.rc('font',**font);
#准备工作完成,开始导入数据:
data = pandas.read_csv("D:/workspaces/python/pythonStudy/31.csv") #第一列为省份,第二列为GDP,第三列为人口,下载地址链接:https://pan.baidu.com/s/1lokm0U-_UOOd0dM8cxWiOg 提取码:acaa
#配置图形格式:
fig = plt.figure(
figsize=(30,20), #尺寸设置(如果数据点比较多,可以调大这个尺寸,方便展示所有的数据)
dpi=80
)
#添加子图对象
sp = fig.add_subplot(111) #111含义:我们要把图形分为一行一列,并且当前要操作第一个子图的意思
#设置坐标轴的范围:将轴最大值设置为实际最大值的1.1倍,这样以来数值在图上就不会显示的太靠边
sp.set_xlim([
0,
data.GDP.max()*1.1
])
sp.set_ylim([
0,
data.population.max()*1.1
])
#关闭坐标轴、坐标轴的刻度值(因为矩阵分析的图不需要坐标刻度)
sp.get_xaxis().set_ticks([])
sp.get_yaxis().set_ticks([])
#图形设置完成,可以开始画点:
sp.scatter(
data.GDP, #GDP作为横轴
data.population, #population作为纵轴
alpha=0.5,s=200,marker='o', #点的形状
edgecolors=mainColor, #点的颜色
linewidths=5 #点的大小
)
#画均值线:
sp.axvline(
x = data.GDP.mean(),
linewidth=1,color=mainColor
)
sp.axhline(
y = data.population.mean(),
linewidth=1,color=mainColor
)
#加深横轴和纵轴的线
sp.axvline(
x = 0,
linewidth=3,color=mainColor
)
sp.axhline(
y = 0,
linewidth=3,color=mainColor
)
#设置横轴和纵轴的标签
sp.set_xlabel('GDP')
sp.set_ylabel('人口')
#画标签(把省名标注在图上)
data.apply(
lambda row: plt.text(
row.GDP,
row.population,
row.province,
fontsize=15
),
axis=1
)
plt.show()
运行结果截图
-
通过图可以看到,广东、山东、江苏人口多,GDP也高,而西藏、青海、宁夏则比较弱势
-
如果对上面的画图代码不是很理解,没关系,后面的章节会专门介绍各种图形的实现方式。