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()   

      

运行结果截图
python笔记31:数据分析之矩阵分析

  • 通过图可以看到,广东、山东、江苏人口多,GDP也高,而*、青海、宁夏则比较弱势

  • 如果对上面的画图代码不是很理解,没关系,后面的章节会专门介绍各种图形的实现方式。