30 数据分析(上)(业务略写可跳)|jupyter|matplotlib

news2024/10/3 2:26:07

文章目录

  • 数据科学领域概述
    • 数据如何驱动运营给企业带来价值
    • 岗位
    • 关键词说明
    • 业务的商业模式
  • 数据指标
    • 数据指标定义及常用数据指标
    • 如何选取指标
    • 分析角度
      • 计数
      • 流量导向的工具
      • 内容导向的工具
      • 用户导向的工具
      • 业务导向的工具
  • 数据分析方法
    • 对比分析
    • 多维分析
    • 漏斗分析
    • 留存分析
    • 总结
  • 用户画像
    • 标签有什么
    • 如何获得标签
    • 用户画像用于做什么
  • 思考问题的方法
    • 归因查找
    • 路径挖掘
    • 行为序列
  • 工具
    • excel
    • Tableau
    • Power Query
    • jupyter
      • 安装
      • 启动
      • 连接pycharm进行启动
    • matplotlib
      • 安装
      • 折线图
      • 划分区域
      • 散点图
      • 条形图
      • 直方图
      • 饼状图
    • numpy
    • pandas

数据科学领域概述

数据如何驱动运营给企业带来价值

  1. 原始收集数据
    数据埋点(数据埋点的意思就是用户使用的时候我们采集数据的地方,比如用户鼠标悬停在某张图片的时间,这就可以当作一个数据埋点)收集用户在网页端,APP,小程序等终端的各种数据
    业务数据
    外部数据
  2. 数据加工处理
    将收集的数据转换成可理解、可量化、可观察的业务指标
    单纯的数据没有意义,只有和业务结合才能发挥价值
  3. 数据可视化
    有了数据指标,必须管理好指标
    建立指标体系
  4. 数据决策和执行
    从数据中得到相关信息,需要把这些信息转换成策略
    包括策略制定,并持续优化和改进策略
  5. 数据产品
    将策略制作成数据应用和产品
    开始自动化和系统化运营
  6. 数据战略
    积累了大量数据,大量模型,大量数据应用
    不只是数据分析,可以将数据变现

在这里插入图片描述

岗位

一般存在下面三种岗位:

  1. 业务线 数据分析
  2. 研发线 数据仓库(数据仓库是完全为数据分析人员服务的一个数据库,存储的数据,用户行为路径,新增用户数等)
  3. 算法线 数据挖掘(相对于数据分析,需要建模,模型的目的是做预测)

关键词说明

  1. ETL 清洗 转换 加载
  2. DW 数据仓库
  3. CRM 客户关系管理
  4. CMS:Content Management System "内容管理系统
  5. KPI 绩效

业务的商业模式

  1. B2C : 面向客户的商业模式(比如游戏)
  2. B2B : 面向企业的商业模式(比如淘宝,实际上就是向商家收钱)
  3. B2B2C:面向企业也面向客户的商业模式(比如京东)
  4. B2VC:这种就是拿投资人的钱(吐槽的hh)

数据指标

数据指标定义及常用数据指标

  1. 数据指标的定义:对当前业务有参考价值可统计数据

  2. 常用的数据指标
    用户数据 谁
    行为数据 干了什么
    业务数据 产生了什么结果

  3. 用户数据
    存量 DAU、MAU
    增量 新增用户
    健康程度 留存率
    从哪儿来 渠道来源
    搜索引擎推广 SEO
    Rom 推广
    app 商店(自然流量 也可以推广)
    手机厂商预装
    其它产品挂下载链接
    扫码

  4. 行为数据
    次数、频率 PV UV 访问深度
    关键路径走了多远 转化率
    行为做了多久 时长
    质量 弹出率(跳出率)

  5. 业务数据
    总量 GMV 访问时长
    人均 ARPU AverageRevenuePerUser 每用户平均收入 人均访问时长
    ARPPU Average Revenue Per Paying User 每付费用户平均收益
    人数 付费人数 播放人数
    健康程度 付费率 付费频次 观看率
    被消费对象 SKU 被消费内容

如何选取指标

最终目的出发 梳理业务模块 -> 判断业务模块类型->根据业务模块类型选择
数据指标:

如何梳理业务模块

  1. 目的 比如我要卖货
  2. 实现目的的方法 我通过文章来卖货(如何搞大/搞频繁(手段))
  3. 方法需要的工具 通过社区创作文章来卖货,我提供一个制作精美图文的工具
  4. 实现方法的途径

业务模块:
在这里插入图片描述
根据业务模块选择数据指标

  1. 工具模块:效率
  2. 内容浏览模块:质和量
  3. 交易模块:转化率
  4. 社区模块:活跃度

分析角度

在这里插入图片描述

计数

计数阶段:

可以使用 goaccess 这款工具简单的来统计

通过脚本与代码统计日志
通过 BI 工具进行基本的分析
通过 awk 工具去搞,外加 uniq 去重,wc 去统计

awk '{print $1}' access.log|sort|uniq|wc -l

使用awk 计算pv(总点击量,直接wc -l access.log就是计算总点击量) ,uv(人访问量,上面的代码就是统计每ip访问量)

流量导向的工具

解决的问题
流量依赖性业务,如电商,或者一锤子买卖
优势
能将流量入口分析得较为细致

内容导向的工具

解决的问题
哪些资源被消费
被消费的情况如何
内容表现质量如何
解决的问题
以内容为核心资源的,如媒体、视频网站

优势
能从内容的视角描述其表现

用户导向的工具

解决的问题
用户来了干什么?
用户还会不会再来?
用户在哪流失了?
用户都是啥样的?

Mixpanel 工具
Inspectlet 工具 —通过录制屏幕的行为 还原用户的行为

业务导向的工具

解决的问题
流程是否顺畅?
规模/频次如何?
异常原因何在?

这里可以看下神策数据的,能进入这家公司挺好的。

数据分析方法

对比分析

如何进行对比分析:
事出反常必有妖,不论增减,只要用户不正常上升下降都需要对比

对比分析比什么:

  1. 绝对值
    本身具备价值的数字
    销售金额
    阅读数 微信的 10 万+
  2. 比例值
    在具体环境中看比例,才具备对比价值
    活跃占比
    注册转化率
  3. 绝对值
    不易得知内在问题,比例值,易收到极端值影响 2%~4%怎么比
  4. 环比 7 号 6 号 5 号 7 月 6 月 5 月
    对短期内具备连续性的数据进行分析
  5. 同比 今年国庆销售额 去年国庆销售额
    观察更为长期的数据集
    观察的时间周期里有较多干扰,希望某种程度上消除这些干扰
  6. 和自己比
    从时间维度 环比|同比
  7. 从不同业务线
  8. 从过往经验估计
  9. 和同行业比:是自身因素还是行业趋势

多维分析

例子:

公司做了微博大 V 推广,想看情况

基本思路:
数据怎么样
有 XX 人启动过
APP 关键功能使用率 XXX%
日活和留存是

思路流程:
APP 启动 按设备 iPhone 美图手机比较多 符合产品定位
APP 启动 按来源 用户因 PUSH 下发进入 APP 比较多
APP 启动 按城市等级查看 发现一线城市用户比较多
运营能力有限只有北上广深有推送,因此打开几率大
APP 启动 按新老用户查看 日活量整体变化不大,老用户占比下降,新用户占比上升,留不住用户。

多维分析就是将一个事件分解成多个小的事件,然后逐层去分析讨论

漏斗分析

运作原理
通过一连串向后影响的用户行为来观察目标

适用场景
适用: 有明确的业务流程和业务目标
不太适用:没有明确的流程,跳转关系复杂

漏斗分析就是归结原因,比如我要分析这个软件为什么没人用,第一层宣传是否到位,宣传到位了,再分析安装是否到位,注册是否到位,等等有一系列的时间顺序下去的流程。和多维分析需要区分开

留存分析

验证产品长期价值可以看月留存,将某一时间段的用户 ID 与另一交叉去重。

随着产品不断的优化,月留存是不断增长的

看日留存会数据量特别多,观察重点不知道放在哪里,而一个月我们产品一个迭代,发一个新版本

一般的计算方式 看大盘可能不准,产品 运营 技术 市场每个环节可能都会对留存造成影响,比如搞活动,引入了一个低质量的渠道,造成留存大跌,因为低质量渠道进来的都是垃圾用户,因此需要看精准留存

精准留存
过滤进行过指定行为的用户 ID,再计算
将用户分为不同的群体后,观察之前留存的区别

总结

数据分析基础阶段

数据分析指标:
在这里插入图片描述
跳过率就是跳出率
GMV:总的访问时长
ARPU:每用户平均访问时长
ARPPU:每付费用户平均访问时长
SKU:品类的数量

四个模块:
在这里插入图片描述
转化率就是详情页转化率,就是点击那个详情页占比总点进list页面的比率(就是商品更吸引人)。

分析工具:
在这里插入图片描述
数据分析方法:
还是注意多维分析和漏斗分析的区别
在这里插入图片描述

用户画像

用户画像:通过对用户各类特征进行标识给用户贴上各类标签,通过这些标签将用户分为不同的群体,以便对不同的群体分别进行产品/运营动作用途。

标签有什么

基础属性

  1. 年龄
  2. 性别
  3. 生日
  4. 星座
  5. 教育
  6. 身高
  7. 收入
  8. 职业

社会关系

  1. 婚姻
  2. 有无小孩
  3. 有无女孩
  4. 家有老人
  5. 性取向

行为特征

  1. 基本行为
  2. 注册时间
  3. 来源渠道
  4. 业务行为
  5. 买过特惠商品

业务相关—比如是健身类的产品,就会有下面的业务指标

  1. 胖瘦高矮
  2. 体脂率
  3. 在练胸
  4. 日均 8000 步
  5. 收藏了 100+份健身计划

如何获得标签

  1. 用户直接填写
    就是用户注册的账号的信息。
  2. 通过用户的行为进行推测
    比如这个用户他购买的物品寄到北京,那么大概率他的地址就在北京,这样子。
  3. 通过用户身边的人推断
    距离相近:某些属性,周围的人都具备,用户大概率也具备,例如大学区域。
    行为相似:通过协同过滤,找到行为相似的目标用户,对用户进行分群。

用户画像用于做什么

  1. 从现有用户中找到我们真正的用户
    真正的用户(高留存. 核心行为频次、完成率高)
  2. 找到「真正的用户」的特征
    比如卖书的平台,假如是二手书的交易
    例:通过他们买卖的书籍,
    倒推他们的年龄、受教育程度、地域、消费能力。
    从哪儿来
    例:通过电话访谈等方式,发现很多来自朋友推荐。
    例如,本科,18-30 岁,一线城市,朋友推荐

思考问题的方法

归因查找

找出事件发生的「主要原因」

  1. 末次归因转化路径短,且事件间关联性强的场景(添加好友是因为什么)比如交友软件,通过漂流瓶,附件的人,摇一摇,或者随机推荐好友
  2. 递减归因转化路径长,非目标事件差异不大,没有完全主导的假如是一个时间管理工具,某一个买了 VIP 没有广告了,不能看这一刻和刚刚用的功能有什么关系,我们可以归为 6,3,1 比例
  3. 首次归因强流量依赖的业务场景,拉人比后续所有事都重要

路径挖掘

因为所有的行为都是漏斗过程,路径挖掘分析法的运作原理:逐级展开某一事件的前一级(后一级)事件,观察其流向。

行为序列

上面我们聊了路径挖掘分析法,大家可能会说,我们有了路径挖掘模型之后,单个用户的行为序列还有什么意义呢,其实单个用户的行为序列能让我们回归具体的业务场景,发现隐藏在统计数据下被统计数据抹平了细节的更真实的业务场景。其实,路径挖掘分析法有它的局限性,它只是把一群人放到这个路径里进行分析,它反应的是一群人的趋势,但是对于单个用户来讲,趋势肯定是不一样的,所以这时我们就需要运用到行为序列分析法(追求个性化)。行为序列分析法的运作原理:将单个用户的所有行为以时间线的形式进行排列。

工具

这边只列出常使用的,并不进行具体介绍。

  1. excel
  2. Tableau
  3. PowerBI
  4. jupyter
  5. matplotlib
  6. numpy
  7. pandas

前三个数据分析师要学,后面的不仅仅数据分析师需要,人工智能也需要相关的了解

excel

Tableau

Power Query

jupyter

安装

首先下载的话就需要管理员,管理员权限打开cmd,然后:

pip install jupyter

如果没有的话,就需要自己去配置环境变量:把那个jupyter所在的python的scrip啥的路径添加到环境变量下

启动

安装完毕后输入jupyter notebook 启动(在git bash中启动可以得到中文jupyter)

基本上的操作都是傻瓜式操作,这边就不特殊介绍,不过需要关注的是,我们要到项目文件下,或者你的测试文件夹下打开对应的git bash,然后输入jupyter notebook,然后创建jupyter,需要我们提前选择好想要打开的文件夹,或者说,提前准备好的位置。

在这里插入图片描述

连接pycharm进行启动

直接创建ipynb文件运行即可,但是需要注意的是,如果pycharm不兼容,就需要手动配置服务器地址,现在对应资源路径运行jupyter notebook,然后复制对应的网址,粘贴进去

在这里插入图片描述
在这里插入图片描述

matplotlib

参考教程:链接

安装

pip install matplotlib

折线图

#折线图的绘制
x = range(1,8) # x轴的位置
y = [17, 17, 18, 15, 11, 11, 13]
# 传入x和y, 通过plot画折线图
plt.plot(x,y)
plt.show()

在这里插入图片描述

x = range(1,8) # x轴的位置
y = [17, 17, 18, 15, 11, 11, 13]
# 传入x和y, 通过plot画折线图
plt.plot(x,y,color='red',alpha=0.5,linestyle='-',linewidth=3)
plt.show()
# '''基础属性设置
# color='red' : 折线的颜色alpha=0.5	: 折线的透明度(0-1) linestyle='--' : 折线的样式linewidth=3		: 折线的宽度—粗细
# '''
# '''线的样式
# -	实线(solid)
# --	短线(dashed)
# -.	短点相间线(dashdot)
# :	虚点线(dotted)
# '''

在这里插入图片描述

# 折点样式选择
x = range(1,8) # x轴的位置
y = [17, 17, 18, 15, 11, 11, 13]
# 传入x和y, 通过plot画折线图
plt.plot(x, y, marker='>')
plt.show()

在这里插入图片描述

# 保存图形
import random
x = range(2,26,2) # x轴的位置
y = [random.randint(15, 30) for i in x]

# 设置图片的大小
'''
figsize:指定figure的宽和高,单位为英寸;                                                                                                  dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80,1英寸等于2.5cm,A4纸是 21*30cm的纸张
'''
# 设置画布对象,figsize中对应的单位是英寸,dpi是每英寸有多少像素点
plt.figure(figsize=(20,8),dpi=80)

plt.plot(x,y)	# 传入x和y, 通过plot画图
#plt.show()
#  保存(注意:  要放在绘制的下面,并且plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片。)
# plt.savefig('./t1.png')
#  图片的格式也可以保存为svg这种矢量图格式,这种矢量图放在网页中放大后不会有锯齿#
plt.savefig('./t1.svg')

在这里插入图片描述

# 设置刻度
x = range(2,26,2) # x轴的位置
y = [random.randint(15, 30) for i in x]
plt.figure(figsize=(20,8),dpi=80)

# # 设置x轴的刻度
# plt.xticks(range(1,25))
# # 设置y轴的刻度
# plt.yticks(range(min(y),max(y)+1))

# 构造x轴刻度标签
x_ticks_label = ["{}:00".format(i) for i in x] #rotation = 45 让字旋转45度
plt.xticks(x,x_ticks_label,rotation = 45)
# 设置y轴的刻度标签
y_ticks_label = ["{}℃".format(i) for i in range(min(y),max(y)+1)]
plt.yticks(range(min(y),max(y)+1),y_ticks_label)

plt.plot(x,y)
plt.show()

在这里插入图片描述

import random


x = range(0,120)
y = [random.randint(10,30) for i in range(120)]

plt.figure(figsize=(20,8),dpi=80)

#rotation将字体旋转45度
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname='C:\Windows\Fonts\STSONG.TTF',size=18)
plt.xlabel('时间',rotation=45,fontproperties = my_font)
plt.ylabel("次数",fontproperties=my_font)
# 设置标题
plt.title('每分钟跳动次数',color='red',fontproperties = my_font)

plt.plot(x,y)

在这里插入图片描述

# 一图多线
# 假设大家在30岁的时候,根据自己的实际情况,统计出来你和你同事各自从11岁到30岁每年交的男/女朋友的数量如列表y1和
# y2,请在一个图中绘制出该数据的折线图,从而分析每年交朋友的数量走势。
y1 = [1, 0, 1, 1, 2, 4, 3, 4, 4, 5, 6, 5, 4, 3, 3, 1, 1, 1, 1, 1]
y2 = [1, 0, 3, 1, 2, 2, 3, 4, 3, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1]

x = range( 11, 31 )  # # 设置图形
plt.figure( figsize=(20, 8), dpi=80 )
'''
添加图例:label 对线的解释,然后用plt.legend添加到图片上;
添加颜色: color='red'
线条风格: linestyle='-';   - 实线 、 -- 虚线,破折线、 -. 点划线、 : 点虚线,虚线、 '' 留空或空格线条粗细: linewidth = 5
透明度:   alpha=0.5
'''
plt.plot( x, y1, color='red', label='自己' )
plt.plot( x, y2, color='blue', label='同事' )
# 设置x轴刻度
xtick_labels = ['{}岁'.format( i ) for i in x]
my_font = font_manager.FontProperties( fname='C:\Windows\Fonts\STSONG.TTF', size=18 )
plt.xticks( x, xtick_labels, fontproperties=my_font, rotation=45 )
# 绘制网格(网格也是可以设置线的样式)
# alpha=0.4 设置透明度
plt.grid( alpha=0.4 )

#  添加图例(注意:只有在这里需要添加prop参数是显示中文,其他的都用fontproperties) # 设置位置loc : upper left、 lower left、 center left、 upper center
plt.legend( prop=my_font, loc='upper left' )

# 展示
plt.show()

在这里插入图片描述

划分区域

建议使用第二种:

第一种:

import numpy as np
x  =  np.arange(1, 100) #划分子图
fig,axes=plt.subplots(2,2)
ax1=axes[0,0]
ax2=axes[0,1]
ax3=axes[1,0]
ax4=axes[1,1]

fig=plt.figure(figsize=(20,10),dpi=80) #作图1
ax1.plot(x, x) # 作 图 2
ax2.plot(x, -x) #作图3
ax3.plot(x, x**2)
# ax3.grid(color='r', linestyle='--', linewidth=1,alpha=0.3) #作图4
ax4.plot(x, np.log(x))
plt.show()

在这里插入图片描述

第二种:

x = np.arange(1,100)
#新建figure对象
fig=plt.figure(figsize=(20,10),dpi=80) #新建子图1
ax1=fig.add_subplot(2,2,1)  ## 2,2是分割成2 * 2  然后画在第一张图上
ax1.plot(x, x)
#新建子图2
ax3=fig.add_subplot(2,2,2)
ax3.plot(x, x**2)
ax3.grid(color='r', linestyle='--', linewidth=1,alpha=0.3)
# 新 建 子 图 3
ax4=fig.add_subplot(2,2,3)
ax4.plot(x, np.log(x))

# 新 建 子 图 4
ax2=fig.add_subplot(2,2,4)
ax2.plot(x, -x)
plt.show()

在这里插入图片描述

散点图

# 散点图
y = [11, 17, 16, 11, 12, 11, 12, 6, 6, 7, 8, 9, 12, 15, 14, 17, 18, 21, 16, 17, 20, 14, 15, 15, 15, 19, 21, 22, 22, 22,
     23]
x = range( 1, 32 )

# 设置图形大小
plt.figure( figsize=(20, 8), dpi=80 )
# 使用scatter绘制散点图
plt.scatter( x, y, label='3月份' )
# 调整x轴的刻度
my_font = font_manager.FontProperties( fname='C:\Windows\Fonts\STSONG.TTF', size=10 )

_xticks_labels = ['3月{}日'.format(i) for i in x]

plt.xticks( x[::3], _xticks_labels[::3], fontproperties=my_font,rotation=45)
plt.xlabel( ' 日 期 ', fontproperties=my_font )
plt.ylabel( '温度', fontproperties=my_font )
# 图 例
plt.legend( prop=my_font )
plt.show()

在这里插入图片描述

条形图

#条形图
my_font =  font_manager.FontProperties(fname='C:\Windows\Fonts\STSONG.TTF',size=16)
a = ['流浪地球','疯狂的外星人','飞驰人生','大黄蜂','熊出没·原始时代','新喜剧之王']
b = [38.13,19.85,14.89,11.36,6.47,5.93]

plt.figure(figsize=(20,8),dpi=80)

# 绘制条形图的方法
'''
width=0.3  条形的宽度
'''
rects = plt.bar(range(len(a)),b,width=0.3,color='r')
plt.xticks(range(len(a)),a,fontproperties=my_font,rotation=45)
# 在条形图上加标注(水平居中)
for rect in rects:
    height = rect.get_height()
    plt.text(rect.get_x() + rect.get_width() / 2, height+0.3, str(height),ha="center")
plt.show()

在这里插入图片描述

直方图

'''
现有250部电影的时长,希望统计出这些电影时长的分布状态(比如时长为100分钟到120分钟电影的数量,出现的频率)等信息,你应该如何呈现这些数据?
'''
# 1)准备数据
time = [131,   98,    125,   131,   124,   139,   131, 117, 128, 108, 135, 138, 131, 102, 107, 114,
119,   128,   121,   142,   127,   130,   124, 101, 110, 116, 117, 110, 128, 128, 115,   99,
136,   126,   134,   95,    138,   117,   111,78, 132, 124, 113, 150, 110, 117,  86,    95, 144,
105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123, 86, 101,   99, 136,123,
117,   119,   105,   137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120,  107,   129, 116,
108,   132,   103,   136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121,  112,   139, 125,
138,   109,   132,   134,156, 106, 117, 127, 144, 139, 139, 119, 140,   83,    110,   102,123,
107,   143,   115,   136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112,  114,   122, 109,
106,   123,   116,   131,   127, 115, 118, 112, 135,115,   146,   137,   116,   103,   144,   83,    123,
111,   110,   111,   100,   154,136, 100, 118, 119, 133,   134,   106,   129,   126,   110,   111,   109,
141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103,
130,   141, 117, 106, 114, 121, 114, 133, 137,    92,121,    112,   146,   97,    137, 105,  98,
117,   112,   81,    97, 139, 113,134, 106, 144, 110, 137,  137,   111,   104,   117, 100, 111,
101,   110,105, 129, 137, 112, 120, 113, 133, 112,    83,    94,    146,   133,   101,131, 116,
111,   84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150]

from matplotlib import font_manager
from matplotlib import pyplot as plt
my_font =  font_manager.FontProperties(fname='C:\Windows\Fonts\STSONG.TTF',size=18) # 2)创建画布
plt.figure(figsize=(20, 8), dpi=100) # 3)绘制直方图

# 设置组距
distance = 1
# 计算组数
group_num = int((max(time) - min(time)) / distance) # 最大值减去最小值除以组距就得到组数
plt.hist(time, bins=group_num) #bins是组数

# 修改x轴刻度显示
plt.xticks(range(min(time), max(time))[::2])

# 添加网格显示
plt.grid(linestyle="--", alpha=0.5)

#添 加 x,  y 轴 描 述 信 息
plt.xlabel("电影时长大小",fontproperties=my_font)
plt.ylabel("电影的数据量",fontproperties=my_font)
# 4)显示图像
plt.show()

在这里插入图片描述

饼状图

import matplotlib.pyplot as plt
import matplotlib
label_list = ["第一部分", "第二部分", "第三部分"]  # 各部分标签
size = [55, 35, 10]    # 各部分大小
color = ["red", "green", "blue"]   # 各部分颜色
explode = [0, 0.05, 0] # 各部分突出值
"""
绘 制 饼 图
explode: 设 置 各 部 分 突 出
label: 设 置 各 部 分 标 签
labeldistance:设置标签文本距圆心位置,1.1表示1.1倍半径
autopct: 设 置 圆 里 面 文 本
shadow:设置是否有阴影
startangle:起始角度,默认从0开始逆时针转
pctdistance:设置圆内文本距圆心距离返回值
l_text:圆内部文本,
matplotlib.text.Text object
p_text:圆外部文本"""
matplotlib.rcParams['font.sans-serif']=['SimHei']  #为了显示汉字
patches, l_text, p_text = plt.pie(size,explode=explode, colors=color, labels=label_list,
                                  labeldistance=1.1, autopct="%1.1f%%", shadow=True, startangle=90, pctdistance=0.6)
plt.axis("equal")  # 设置横轴和纵轴大小相等,这样饼才是圆的
plt.legend()
plt.show()

在这里插入图片描述

numpy

见31 数据分析(下):

pandas

见31 数据分析(下):

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1071942.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Java的医护人员排班系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

Python教程——配置环境,再探IDE

文章目录 一、Python安装下载安装验证 二、第一个Python程序常见问题 三、Python解释器四、PyCharm工具安装和配置安装使用PyCharm基本使用 一、Python安装 下载 如果我们想要使用Python语言编写程序,我们必须下载Python安装包并配置Python环境,我们现…

如何防止重复提交订单?

重复提交原因 其实原因无外乎两种: 一种是由于用户在短时间内多次点击下单按钮,或浏览器刷新按钮导致。 另一种则是由于Nginx或类似于SpringCloud Gateway的网关层,进行超时重试造成的。 常见解决方案 方案一:提交订单按钮置灰 …

用Blender制作YOLO目标检测器训练数据

推荐:用 NSDT编辑器 快速搭建可编程3D场景 本文将介绍一种非常有吸引力的机器学习训练数据的替代方案,用于为给定的特定应用程序收集数据。 无论应用程序类型如何,这篇博文都旨在向读者展示使用 Blender 等开源资源生成合成数据(S…

一盏茶的功夫帮你彻底搞懂JavaScript异步编程从回调地狱到async/await

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📘 1. 引言 📘 2. 使用方法 📘 3. 实现原理 📘 4. 写到最后…

Linux I/O多路复用 select poll epoll

简介 select函数 poll函数 epoll函数

yolov7车牌识别(12种中文车牌类型)

12种中文车牌类型: 1.单行蓝牌 2.单行黄牌 3.新能源车牌 4.白色警用车牌 5 教练车牌 6 武警车牌 7 双层黄牌 8 双层武警 9 使馆车牌 10 港澳牌车 11 双层农用车牌 12 民航车牌 测试demo: 以yolov7-lite-s 为例: python detect_rec_plate.py --detect_model weigh…

408专题--计算机网络4W字完整版-考研专用

文章目录 前言1.计算机网络体系结构1.1 计算机网络概述1.2 计算机网络的功能1.3 计算机网络的组成1.4 计算机网络分类按照分布范围分类按照交换技术分类按照使用者分类按照传输技术分类按传输介质分类按照拓扑结构分类 1.5 计算机网络的性能指标1.6 计算机网络体系结构1.7 计算…

使用poi-tl循环导出word报表

先看模板和导出的效果 模板 效果 根据模板循环生成表格,每个表格再循环填充数据,也就是两层循环,第一层循环是学生学期信息,第二层循环是学生的成绩数据。 第一个循环 {{?listTable}} {{/}}第二个循环 {{reportList}} 表格…

关于:未同意隐私政策,应用获取ANDROID ID问题

我在提交华为应用时,总是提示【未同意隐私政策,应用获取ANDROID ID个人信息】,但是我已经全部去掉了,后面问了人工客服,反馈了如下信息 调用堆栈 com.unity3d.player.UnityPlayer.nativeRender(Native Method), com.un…

ViewStub

1.作用 1.性能优化&#xff1a; 用到的时候再去加载&#xff0c;不调用加载的话&#xff0c;不会显示 2.使用 1.xml 其中hecate_listview2x为里面加载的布局 <ViewStubandroid:id"id/hecate1_recycler_vs"android:layout_width"match_parent"andr…

python pytorch- TextCNN TextRNN FastText Transfermer (中英文)文本情感分类实战(附数据集,代码皆可运行)

python pytorch- TextCNN TextRNN FastText Transfermer 文本情感分类实战&#xff08;附数据集&#xff0c;代码皆可运行&#xff09; 注&#xff1a;本次实验&#xff0c;主要注重代码实现这些模型&#xff0c;博主的数据集质量较差&#xff0c;模型评估效果并不是十分理想&…

Springboot之AOP的执行顺序

AOP执行顺序验证 项目引入了依赖。自动开启了aop的配置。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency>切面上配置Order注解 切面类AopTest1&#xff0c;ord…

华为ICT——第三章图像处理基本任务

目录 1&#xff1a;数字图像处理的层次&#xff1a;&#xff08;处理-分析-理解&#xff09;顺序不能错&#xff1a; 2&#xff1a;图像处理&#xff08;图像处理过程&#xff09;&#xff1a; 3&#xff1a;图像分析&#xff08;特征提取&#xff09;&#xff1a; 4&#x…

vue3前端开发-开发环境安装篇

文章目录 1.安装nvm2.设置安装源为淘宝镜像3.通过nvm安装nodejs4. 安装pnpm4.1 安装pnpm4.2 配置 5.创建vite-vue项目6. vue3demo目录结构7. 扩展插件安装8. 用户代码片段8.1 设置8.2 快速生成代码 1.安装nvm 如果本地已经安装了nodejs&#xff0c;请先卸载。 nvm主要的作用就是…

ES系列十二、ES的scroll Api及分页实例

1.官方api 1.Scroll概念 Version&#xff1a;6.1 英文原文地址&#xff1a;Scroll 当一个搜索请求返回单页结果时&#xff0c;可以使用 scroll API 检索体积大量&#xff08;甚至全部&#xff09;结果&#xff0c;这和在传统数据库中使用游标的方式非常相似。 不要把 scroll 用…

力扣(LeetCode)2578. 最小和分割(C++)

哈希集合 请读者思考&#xff0c;num拆分成num1和num2&#xff0c;要使得num1 num2最小&#xff0c;应满足两条性质&#xff1a; num1和num2位数相同&#xff0c;或最多差一位。num1和num2应按数值从小到大在num中取数。 想到统计num的位数&#xff0c;以实现性质1的需要&a…

JavaSE的常用API学习——字符串相关

目录 一、什么是API 二、String字符串 (一)创建String对象的两种方式 1.直接赋值的内存模型 2.new的内存模型 (二)字符串之间的比较与equals 1.运算符 2.equls()方法 三、StringBuilder的用法 1.StringBuilder的构造方法 2.StringBuilder的常用成员方法 3.小练习&a…

Java中的异常处理方法

在Java开发中&#xff0c;异常处理是必不可少的一部分。良好的异常处理机制可以提高代码的可读性、可靠性&#xff0c;保证程序的稳定性。本文将深度剖析Java中的异常处理机制&#xff0c;并分享一些最佳实践方法&#xff0c;帮助您在实际项目中优雅地处理异常。 一、Java异常…

我用PYQT5做的第一个实用的上位机项目(五)

制作一个动态仪表盘。 具体过程参照前面技术储备阶段的文章&#xff1a; PYQT制作动态时钟-CSDN博客 使用PYQT5简单制作动态仪表盘-CSDN博客 仪表盘由以下部件构成&#xff1a;背景 指针 表盘 进度条&#xff08;设定值&#xff09; 遮罩 设定和显示 其中表盘、 进度条和指…