作者 | NFii 老表
本文转自公众号 简说Python
本文给大家分享一篇从小程序用户使用网络、微信版本、手机型号、屏幕样式、微信字体大小等方面来分析大家的手机使用习惯。
01
技术分析
1、数据来源:微信小程序(英文取名)
2、总数据量:6730
3、分析工具:Pycharm python
4、运行环境:Python 3.6,Windows 10
5、模块导入:
import requests
import pandas as pd
from pyecharts import Pie
from pyecharts import Bar
6、数据获取代码:
获取所有数据:
url='英文取名小程序后台数据接口(暂时不对外开放)'
#发送请求,获取请求页面,同时将页面转换为json格式
json_source = requests.post(url).json()
# 以字典方式解析json数据
data = json_source['ResponseData']
单独整理提取数据:
def get_need(thing):
things = {}
name = []
num = []
for item in data:
body = eval(item['SystemInfo'])
if thing in body.keys():
need = body[thing].lower()
else:
continue
if need in things.keys():
things[need] = things[need] + 1
else:
things[need] = 1
for k, v in things.items():
if(k == '' or k=='none'): continue
else:
name.append(k)
num.append(v)
dataframe = pd.DataFrame({thing:name, '数量':num})
dataframe.to_csv(thing+'.csv', index=False, encoding='gb2312')
6、数据再清理可视化代码:
普通柱状图:
#普通的一张搞定的柱图
def drawzhuzi(thing):
data = pd.read_csv(thing+'.csv',encoding='gb2312')
#从csv文件中获取数据
name = list(data[thing])
num = list(data['数量'])
bar = Bar()
bar.width = 2000
bar.add(
thing,
name,
num,
xaxis_rotate=35,
xaxis_interval=0,
#label_color = "gray"柱子的颜色
is_random=True
)
bar.render()
比较少数据的柱图:
#比较少数据的柱图
def smallzhuzi(thing):
data = pd.read_csv(thing+'.csv',encoding='gb2312')
#从csv文件中获取数据
name = list(data[thing])
num = list(data['数量']).sort()
print(num)
bar = Bar()
bar.use_theme('westeros')
bar.width=1000
bar.add(
thing,
name,
num,
xaxis_interval=0,
xaxis_rotate=35
)
bar.render()
smallzhuzi("fontSizeSetting")
数据量比较多的柱状图:
#数据量较多的使用的柱图
def draw(thing):
data = pd.read_csv(thing+'.csv',encoding='gb2312')
#从csv文件中获取数据
name = list(data[thing])
num = list(data['数量'])
bar = Bar()
bar.width=1000
bar.height=340
bar.use_theme('roma')
bar.add(
thing,
name,
num,
xaxis_interval=0,
xaxis_rotate=45,
is_datazoom_show = True,
)
bar.render()
数据量贼多的柱状图:
#数据量贼多的柱状图
def slidezhuzi(thing):
data = pd.read_csv(thing + '.csv', encoding='gb2312')
# 从csv文件中获取数据
name = list(data[thing])
num = list(data['数量'])
newnum = []
newbrand = []
for i in range(len(num)):
if num[i] > 5:
number01 = str(name[i]).find('(')
number02 = str(name[i]).find('<')
if number01 != -1 and number02 != -1:
number = number01 if number01 < number02 else number02
elif number01 == -1:
number = number02
else:
number = number01
if number != -1:
newbrand.append((name[i][:number]).strip())
else:
newbrand.append(name[i].strip())
newnum.append(num[i])
bar = Bar()
bar.width = 6000
bar.use_theme('roma')
bar.add(
thing,
newbrand,
newnum,
xaxis_rotate=30,
xaxis_interval=0,
is_datazoom_show=True,
)
bar.render()
一般饼图:
#饼图
def drawpie(thing):
data = pd.read_csv(thing+'.csv',encoding='gb2312')
#从csv文件中获取数据
name = list(data[thing])
num = list(data['数量'])
pie = Pie()
pie.add("", name, num)
pie.render()
饼中饼图:
#饼中饼
def pieandpie(thing):
data = pd.read_csv(thing+'.csv',encoding='gb2312')
#从csv文件中获取数据
name = list(data[thing])
num = list(data['数量'])
pie = Pie()
pie.add(
"",
name,
num,
radius=[40, 75],
label_text_color=None,
legend_orient="vertical",
legend_pos="left",
)
pie.render()
02
数据分析
1、网络使用情况
网络使用情况
从图中很容易看出,红色代表使用Wifi用户占的比例,深色表示使用4G网络的用户比例,其他的2G、3G几乎可以忽略。
2、用户终端品牌偏好
就品牌偏好而言,小程序用户主要偏好于苹果、小米、华为这三大手机品牌,同时国产品牌vivo与oppo的用户使用数量也紧追其后——曾经的步步高,现在的蓝绿厂,和笔者一样用魅族的一定要举个手。
从上图可以看出,使用人数较靠前的型号基本上均属于苹果手机系列,虽然苹果手机系列更新换代的速度较快,但使用人数最多的却是苹果公司于15年推出的iPone6s机型。此外,国产品牌中,小米出品的红米4a和360N6 Pro机型也广受用户青睐。
总的来看,从用户的品牌机型可以发现,苹果、小米等高端系列终端广受用户偏爱,国产手机品牌推出平价机型也是用户选择的主流。
3、操作系统:iOS VS Android
iOS vs Android
图中的结果也算是在意料之中。有近45%的土豪用的iOS机,不可否认还是有很多人选择实惠的Android机。不过目前的Android机也走低价路线了,最初以价格为战略的小米,也接连出了几款2k+机,不过这也和配置有关。
但在笔者看来,一个苹果,终究抵不过数十个安卓。
再来细看一下大家使用iOS系统和安卓系统的版本号:
iOS系统版本号
从图中可以看出苹果手机基本上都将系统更新到了较新的版本,其中iOS11.4.1的使用数量最多。
Android系统版本号
对于Android系统的用户,虽然现在已经推出了Android8.0的一系列最新版本,但是用户使用最多的却还是之前推出的Android7.1.1,同时还有一定数量的用户使用Android6.0及以下版本。这个结果可能和手机配置/生产日期有关,另外Android机系统自动更新比较“鸡肋”,去刷机升级系统又太麻烦可能也是一个很大的原因。
4、用户主屏分辨率
主屏分辨率
由主屏分辨率分析可以得出,360x640使用人数最多,其次是屏幕长宽比为 375x667。来说说360x640和375x667:
5、用户使用微信版本号
微信版本号
几乎都是6.6.0以上的版本,多数用户都更新到了最新的微信版本(6.7.3),小部分也是较新的版本系统,只有很小一部分仍在使用过去的微信版本。不知是有情怀不想更新,还是懒,或者弃用了?你的微信更新了吗?
6、用户使用语言与字号
语言
字体大小
在语言选择上,毋庸置疑中文占据首位;
在字体上,几乎100%的用户使用的是16px,可能是系统默认字体大小,就像我编辑微信推文一样,每次新建“蔬菜”字体都是默认16px,感觉是不大不小,看着刚好,那些使用20,还有32px的,莫不是视力不好?注意眼睛,适当远离手机!!