概述
在我们进行数据分析时,需要在刚刚拿到数据的项目初期进行数据探索性分析,方便你对数据有一定的了解。我们要运用描述性统计的方法,通过观察数据集各个指标状况梳理自己的思维,也可以帮助我们更好的向他人展示数据分析结果。描述性统计主要包括数值指标的分析和数据可视化分析
统计数值分析
我们使用Python进行数值分析时,一般会用到Numpy和Scipy两个包。
import numpy as np
import scipy as sp
np.mean(data) #均值
np.median(data) #中位数
sp.mode(data) #众数
np.ptp(data) #极差
np.var(data) #方差
np.std(data) #标准差
np.mean(data)/np.std(data) #变异系数
np.cov(data, bias = 1) #计算协方差,参数bias=1表示结果需要除以N,否则为只计算分子部分
np.corrcoef(data) #计算相关系数
以上是用Python的Numpy和Scipy两个包进行简单地统计数值特征分析
数据可视化概述
首先我们要知道可视化的图形都包括哪几类,都是做什么用的。
图表分类
根据数据之间的关系,我们可以将图形分为五类:
比较:比较数据直接类别的关系,如条形图
联系:查看两个或以上数据之间的联系,如散点图,气泡图,雷达图
组成:了解各个数据占总体的百分比,如饼图,金字塔图
分布:描述单个变量或者多个变量的分布情况,如地图,散点图
趋势:描述数据的变化或随时间变化的趋势,折线图
常用图表
下图来源于《如何选择正确的图表类型》:,详细的记录了依据想要展示的内容划分各种统计图表集合。
可视化分析
我们依据数据之间关系进行分类,将各种图表在matplotlib和seaborn包中的对应函数列出。
比较
1.条形图
条形图可以表示多个类别数据之间的关系
import matplotlib.pyplot as plt
# 这两行代码解决 plt 中文显示的问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
waters = ('碳酸饮料', '绿茶', '矿泉水', '果汁', '其他')
buy_number = [6, 7, 6, 1, 2]
plt.bar(waters, buy_number) #纵向条图
plt.show()
plt.barh(waters, buy_number) #横向条图
plt.show()
2.堆叠条图
堆叠条图可以表示各分类中包含的每个小分类占比,显示的是单个项目与整体之间的关系
#堆叠条形图
import matplotlib.pyplot as plt
import numpy as np
index = np.arange(4)
data1 = np.array([1,5,6,3])
data2 = np.array([1,2,1,5])
data3 = np.array([4,8,9,4])
a = 0.3
plt.title('multi bar chart')
plt.bar(index, data1, a, color = 'pink', label = 'a', hatch = '/')
plt.bar(index, data2, a, bottom = data1,
color = 'c', label = 'b') #堆叠在第一个上方
plt.bar(index, data3, a, bottom = (data1 + data2),
color = 'orange', alpha = 0.5,label = 'c') #堆叠在第一个和第二个上方
plt.show()
联系
1.散点图
散点图描述了数据集中每个点的所在具体位置
import numpy as np
import matplotlib.pyplot as plt
x = np.linespace(0, 10, 30)
y = sin(x)
plt.plot(x, y, 'bo', ms = 5)
2.气泡图
将散点图中点的大小作为第三个数据输入,则可以得到气泡图,反映三个变量的关系
import matplotlib.pyplot as plt
import numpy as np
# 这两行代码解决 plt 中文显示的问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 输入产量与温度数据
production = [1125, 1725, 2250, 2875, 2900, 3750, 4125]
tem = [6, 8, 10, 13, 14, 16, 21]
rain = [25, 40, 58, 68, 110, 98, 120]
colors = np.random.rand(len(tem))
plt.scatter(tem, rain, s=production, c=colors, alpha=0.6) #画散点图,大小为production中的数据,不透明度为0.6
plt.ylim([0, 150])
plt.xlim([0, 30])
plt.ylabel('降雨量')
plt.xlabel('温度')
plt.show()
3.雷达图
雷达图用来展示多维数据
import matplotlib.pyplot as plt
import numpy as np
#使用ggplot的绘图风格
plt.style.use('ggplot')
#构建角度与值
theta = np.array([0.25, 0.75, 1, 1.5, 0.25])
r = [20, 60, 40, 80, 20]
#设置极坐标轴数据
plt.polar(theta*np.pi, r, "r-", lw=1)
#设置填充颜色,不透明度0.75
plt.fill(theta*np.pi, r, 'r', alpha=0.75)
plt.ylim(0,100)
plt.grid(True)
plt.show()
组成
1.饼图
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
labels = ['China','Swiss','USA','UK','Laos','Spain']
x = [222,42,455,664,454,334]
fig = plt.figure()
plt.pie(x, labels=labels, autopct='%1.2f%%') #画饼图(数据,数据对应的标签,百分数保留两位小数点)
plt.title("Pie chart")
plt.show()
2.漏斗图
from pyecharts import Funnel
attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
value = [20, 40, 60, 80, 100, 120]
funnel = Funnel("漏斗图示例")
funnel.add("商品", attr, value, is_label_show=True,
label_pos="inside", label_text_color="#fff")
funnel.render()
funnel
分布
地图
Python在做地理分布图方向其实有很多很好用的包,但由于我自己做地图比较少,这里只给大家推荐一个我常用的包:folium
import folium
folium.Map()
folium.Map(location=[30.52, 114.50], room_start=15)
更多用法可见Python 如何画出漂亮的地图?
趋势
单折线图
import matplotlib.pyplot as plt
x_data = ['1', '2', '3', '4', '5', '6', '7']
y_data = [58, 60, 63, 71, 84, 90, 102]
plt.plot(x_data, y_data)
plt.show()
多折线图
import matplotlib.pyplot as plt
x_data = ['1', '2', '3', '4', '5', '6', '7']
y_data1 = [58, 60, 63, 71, 84, 90, 102]
y_data2 = [49, 56, 52, 58, 70, 65, 72]
#color指定颜色,linewidth指定线的宽度,linestyle指定线的样式
plt.plot(x_data, y_data1, color='red', linewidth=2.0, linestyle='--')
plt.plot(x_data, y_data2, color='blue', linewidth=3.0, linestyle='-.')
plt.show()
以上就是Python中关于数据关系的基础图形绘制。
最后
以上就是寂寞大山为你收集整理的数据分析学习笔记(一)——描述性统计统计数值分析数据可视化概述可视化分析的全部内容,希望文章能够帮你解决数据分析学习笔记(一)——描述性统计统计数值分析数据可视化概述可视化分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复