社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

堆积图结合冲积图-python

Chopin • 3 年前 • 565 次点击  

令人惊讶的是,关于python和python包的信息很少。我希望将堆积的钢筋和相应的冲积层组合在同一个图中。

使用下面的方法,我有三个独特的组,在 Group .我想显示每个 对于每个独特的 Point .我用这种方式格式化数据,因为我需要三个单独的堆叠条形图 指向 .

所以总的来说( Ove )突出三者的整体比例 Points . Group 1 占70%, Group 2 占20%, Group 3 占10%。但每组的比例在不同的时间间隔内变化 要点 .我希望能像标准的堆叠条形图一样展示这一点,但要在顶部添加冲积层。

import pandas as pd
import pyalluvial.alluvial as alluvial 

df = pd.DataFrame({
    'Group': [1, 2, 3],
    'Ove': [0.7, 0.2, 0.1],
    'Point 1': [0.8, 0.1, 0.1],
    'Point 2': [0.6, 0.2, 0.2],
    'Point 3': [0.7, 0.3, 0.0],
    })

ax = alluvial.plot(
   df = df, 
   xaxis_names = ['Group','Point 1','Point 2', 'Point 3'], 
   y_name = 'Ove', 
   alluvium = 'Group',
)

输出显示整体组比例(第一栏)正确。但以下是按比例堆叠的钢筋。

如果我变换df并将点作为一列,那么我不会得到3个单独的条。

enter image description here

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/129451
 
565 次点击  
文章 [ 1 ]  |  最新文章 3 年前
micmalti
Reply   •   1 楼
micmalti    4 年前

正如@darthbaba正确指出的, pyalluvial 期望数据帧格式由匹配不同变量类型组合的频率组成。为了给你一个有效输入的例子,每个 Point 在每个 Group 已被标记为存在( 1 )还是缺席( 0 ):

df = pd.DataFrame({
    'Group': [1] * 6 + [2] * 6 + [3] * 6,
    'Point 1': [1, 1, 1, 1, 0, 0] * 3,
    'Point 2': [0, 1, 0, 1, 1, 0] * 3,
    'Point 3': [0, 0, 1, 1, 1, 1] * 3,
    'freq': [23, 11, 5, 7, 10, 12, 17, 3, 6, 17, 19, 20, 28, 4, 13, 8, 14, 9]
    })

fig = alluvial.plot(df=df, xaxis_names=['Point 1','Point 2', 'Point 3'], y_name='freq', alluvium='Group', ignore_continuity=False)

enter image description here

显然,上面的代码并不能解决这个问题 积脓的 尚未支持将堆叠的钢筋包括在内,就像它在中的实现方式一样 ggalluvial ( see 例#5)。因此,除非你想使用 GG冲积层 ,您最好的选择是自己添加所需的功能。我先修改一下 line #85 .