| 可以先收藏点赞,后面掏出来直接用! |

一、可视化绘制思维导图

在这里插入图片描述

二、比较类图

创建示例数据如下:

import pandas as pd

data = pd.DataFrame({
    'name': ['Bob', 'Mary', 'Peter', 'Ben', 'Lucy'],
    'score': [99, 100, 89, 91, 95],
    'class': ['class1', 'class2', 'class1', 'class2', 'class3'],
    'sex': ['male', 'fmale', 'male', 'male', 'fmale'],
    'age': [23, 25, 20, 19, 17]
})

在这里插入图片描述

条形图
  • 条形图用于比较不同数据之间的差异,条形图的宽度表示数值的大小,可以对单一的变量或者多组变量进行比较。
  • 对单一变量进行比较:x为比较数值,y为比较标签
  • 对多变量进行比较:新增维度color
# 实现简单的条形图
import plotly.express as px

# orientation='h' 用户表示绘制条形图
fig = px.bar(data, x='score', y='name', orientation='h', text_auto=True)
fig.show()

请添加图片描述

# 实现多维度比较条形图
import plotly.express as px
'''
orientation='h' : 用户表示绘制条形图
barmode='group' : 按照标签y和颜色color进行聚合,每个“颜色”单独一个条图
text\_auto=True : 显示数据标签
'''

fig = px.bar(data,
             x='score',
             y='class',
             color='sex',
             orientation='h',
             barmode='group',
             text_auto=True)
fig.show()

请添加图片描述

柱形图
  • 柱状图同样是用于比较不同数据之间的差距,其与条形图的含义相同,只是呈现方式不同。

柱形图的高度表示数值的大小,也可以对单一的变量或者多组变量进行比较。

  • 注:在使用条形图和柱形图时x和y的参数传入相反。
# 实现简单的柱形图
import plotly.express as px

fig = px.bar(data, x='name', y='score', text_auto=True)
fig.show()

在这里插入图片描述

# 实现多维度比较条形图
import plotly.express as px
'''
barmode='group' : 按照标签y和颜色color进行聚合,每个“颜色”单独一个条图
'''

fig = px.bar(data,
             x='class',
             y='score',
             color='sex',
             barmode='group',
             text_auto=True)
fig.show()

请添加图片描述

堆积柱形图
  • 堆积柱形图和多维度柱形图的表示效果类似,其主要在于比较标签的整体水平,会对所有标签下的值进行加和统计,通过color属性可以看出每个标签下的数据差异。
# 实现堆积柱形图
import plotly.express as px

fig = px.bar(data,
             x='class',
             y='score',
             color='sex',
             text_auto=True
             )
fig.show()

请添加图片描述

百分比堆积柱形图
  • 百分比堆积柱形图通常用于比较各个标签内多项数据的占比情况(通常用于时间标签的比较)

在plotly中没有直接进行百分比柱形图绘制的方法,因此我们可以先使用pandas算出数据的百分比,然后再将百分比数据用于绘图。

# 计算百分比
df = pd.DataFrame(data.groupby('class')['score'].sum())


def func(score, df):
    return score / df.loc[data[data['score'] == score]['class']].values[0][0] \* (
        100)


data['percent'] = data['score'].apply(func, df=df)

# 实现百分比堆积柱形图
import plotly.express as px

fig = px.bar(data,
             x='class',
             y='percent',
             color='sex',
             text_auto=True
             )
fig.show()

请添加图片描述

雷达图
  • 雷达图通常用于对个体的多个属性进行分析(企业经营状况、个人能力等)

在游戏中我们经常会看见各种游戏能力雷达图,这就是最常见的一种游戏雷达图的应用方式。

# 绘制雷达图
import plotly.express as px
import pandas as pd

df = pd.DataFrame(
    dict(score=[4, 5, 4, 3, 4], data=['输出', 'KDA', '发育', '团战', '生存']))
'''
r : 雷达图各个维度的数值
theta : 雷达图各个维度的标签
line\_close : 是否将曲线闭合,False时生存和输出不会进行连线
'''

fig = px.line_polar(df, r='score', theta='data', line_close=True)
# 颜色填充
fig.update_traces(fill='toself')
fig.show()

请添加图片描述

树状图
  • 树状图,也被称为树枝状图。树形图是数据树的图形表示形式,以父子层次结构来组织对象。是枚举法的一种表达方式。

树状图的常见参数说明:

  • path:树状图的父子层级顺序,[父,子…]
# 绘制树状图
import plotly.express as px

df = px.data.tips()
fig = px.treemap(df,
                 path=[px.Constant("all"), 'day', 'time', 'sex'],
                 values='total\_bill')
fig.update_traces(root_color="lightgrey")
fig.update_layout(margin=dict(t=50, l=25, r=25, b=25))
fig.show()

请添加图片描述

漏斗图
  • 漏斗图通常用于对阶段之间的转化关系进行比较,数据分析中常见的AARRR模型的可视化就是通过漏斗图来实现的。
import plotly.express as px

data = dict(number=[100, 70, 50, 30, 10], stage=["获客", "激活", "留存", "收益", "传播"])
fig = px.funnel(data, x='number', y='stage')
fig.show()

请添加图片描述

三、趋势类图

折线图
  • 折线图通常用于展示随时间(数值)而连续变化的数据,如A公司和B公司在2021年每个月的营业额。
import plotly.express as px

time_data = pd.DataFrame({
    'A公司': [20, 30, 40, 50, 45],
    'B公司': [18, 25, 33, 45, 58],
    '月份': [1, 3, 5, 7, 9]
})
fig = px.line(time_data, x="月份", y=['A公司', 'B公司'], title='公司营收对比')
fig.show()

请添加图片描述

桑基图
  • 桑基图又称桑基能量分流图,也称桑基能量平衡图,该图形从左到右展示出了初始数据流向。该图形的绘制过程较为复杂,在下述代码中有两个主要参数项nodelink

node用于给出基本的配置项:

  • pad:图中空白分隔空隙的大小;
  • thickness:图中节点的宽度(每个连接处的长方形);
  • line:每个节点的边框线的颜色和粗细;
  • label:每个节点的名字(包含一层/二层/三层…);
  • color:每个节点的颜色(和名字按照索引相对应)

link用于给出具体的连接选项:

  • source:每条连接线的起点(数值表示节点的索引);
  • target:每条连接线的终点(数值表示节点的索引);
  • value:连接线的信息量(数值越大,连接线越粗);
  • color:每条连接线的颜色(通常按照起点的颜色进行对应)。
# 绘制桑基图
import plotly.graph_objects as go

fig = go.Figure(data=[go.Sankey(
    node = dict(
      pad = 10,
      thickness = 20,
      line = dict(color = "black", width = 0.5),
      label = ["A1", "A2", "B1", "B2", "C1", "C2"],
      color = ['blue', 'pink', 'green', 'brown', 'yellow', 'purple']
    ),
    link = dict(
      source = [0, 1, 0, 2, 3, 3], 
      target = [2, 3, 3, 4, 4, 5],
      value = [8, 4, 2, 8, 4, 2],
      color = ['blue', 'pink', 'blue', 'green', 'brown', 'brown']
  ))])

fig.update_layout(title_text="桑基图示例", font_size=10)
fig.show()

请添加图片描述

堆叠面积图
  • 堆叠面积图可以用来比较在一个区域内的多个变量,适合展示整体数据的变化趋势。堆叠面积图和普通的面积图的区别是每个数据值序列映射的区域起点都是上一个数据值序列顶端。
# 绘制堆叠面积图
import plotly.express as px

time_data = pd.DataFrame({
    '营业额': [20, 30, 40, 50, 45, 18, 25, 33, 45, 58],
    '公司':
    ['A公司', 'A公司', 'A公司', 'A公司', 'A公司', 'B公司', 'B公司', 'B公司', 'B公司', 'B公司'],
    '月份': [1, 3, 5, 7, 9, 1, 3, 5, 7, 9]
})

fig = px.area(
    time_data,
    x='月份',
    y='营业额',
    color='公司'
)

fig.show()

请添加图片描述

百分比堆积面积图
  • 绘制百分比面积图,只需要传入相应的百分比数据即可
# 绘制百分比面积图
import plotly.express as px

time_data = pd.DataFrame({
    '营业额占比': [40, 30, 40, 50, 45, 60, 70, 60, 50, 55],
    '公司':
    ['A公司', 'A公司', 'A公司', 'A公司', 'A公司', 'B公司', 'B公司', 'B公司', 'B公司', 'B公司'],
    '月份': [1, 3, 5, 7, 9, 1, 3, 5, 7, 9]
})

fig = px.area(time_data, x='月份', y='营业额占比', color='公司')

fig.show()

请添加图片描述

四、关系类图

散点图
  • 散点图是一种非常常见的图形,通常用于展示数据分布,常见的散点图都是二维图形,也就是说能够展示两个维度之间的数据分布,如展示身高和体重的分布等。
# 散点图示例
import plotly.express as px

fig = px.scatter(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16])
fig.show()

请添加图片描述

热力图
  • 热力图用于展示数据之间的相关性,通常我们需要计算待对比的两个特征的皮尔逊相关系数,然后将相关系数矩阵通过热力图进行呈现,颜色越深表明相关性越高。
# 热力图示例
# 可以将数据换成相关系数矩阵

import plotly.express as px

fig = px.imshow([[1, 20, 30],
                 [20, 1, 60],
                 [30, 60, 1]],
               text_auto=True)
fig.show()

请添加图片描述

气泡图
  • 气泡图不仅能够展示数据之间的分布,还能对大小关系进行展示,通常需要三个维度的数据进行绘制。

绘制气泡图用到的主要参数介绍如下:

  • x:横坐标
  • y:纵坐标
  • marker.color:气泡颜色
  • marker.opacity:气泡透明度
  • marker.size:气泡大小
import plotly.graph_objects as go

fig = go.Figure(data=[
    go.Scatter(x=[1, 2, 3, 4],
               y=[10, 11, 12, 13],
               mode='markers',
               marker=dict(
文末有福利领取哦~
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

👉**一、Python所有方向的学习路线**

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。![img](https://img-blog.csdnimg.cn/c67c0f87cf9343879a1278dfb067f802.png)

👉**二、Python必备开发工具**

![img](https://img-blog.csdnimg.cn/757ca3f717df4825b7d90a11cad93bc7.png)  
👉**三、Python视频合集**

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。  
![img](https://img-blog.csdnimg.cn/31066dd7f1d245159f21623d9efafa68.png)

👉 **四、实战案例**

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。**(文末领读者福利)**  
![img](https://img-blog.csdnimg.cn/e78afb3dcb8e4da3bae5b6ffb9c07ec7.png)

👉**五、Python练习题**

检查学习结果。  
![img](https://img-blog.csdnimg.cn/280da06969e54cf180f4904270636b8e.png)

👉**六、面试资料**

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。  
![img](https://img-blog.csdnimg.cn/a9d7c35e6919437a988883d84dcc5e58.png)

![img](https://img-blog.csdnimg.cn/5db8141418d544d3a8e9da4805b1a3f9.png)

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里无偿获取](https://bbs.csdn.net/topics/618317507)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐