plotly / plotly/plotly.py

allow provision of X coordinates only for Sankey charts

未关闭
#1,732 6 条评论 6 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

feature P3
主要语言
Python
星标
18.8k
派生
2.8k
平均合并
16 小时 26 分钟
30 天内合并 PR
21

描述

This is somewhat of a duplicate of #960 and #1437 but slightly more hopeful :)
The x and y arguments of the nodes dict do successfully control node location, however -- it appears that both arguments must be supplied.

import dash
import dash_core_components as dcc
import dash_html_components as html
f#rom dash.dependencies import Output, Input, State
import plotly.graph_objs as go
#import pandas as pd

app = dash.Dash()
app.layout = html.Div([
    dcc.Graph(
        id = 'wut',
        figure={
            'data' : [
                dict(
                    type='sankey',
                    #domain = 
                    arrangement = 'fixed',
                        node = dict(
                            pad = 15,
                            thickness = 20,
                            line = dict(color = "black", width = 0.5),
                            label = ["A1", "A2", "B1", "B2", "C1", "C2"],
                            x = [0.1, 0.2, 0.24, 0.7, 0.8, .9],
                            y = [0, .2, .3, .4, .5, .6],
                            color = "blue"
                    ),
            link = dict(
                source = [0, 1, 0, 2, 3, 3], # indices correspond to labels, eg A1, A2, A2, B1, ...
                target = [2, 3, 3, 4, 4, 5],
                value = [8, 4, 2, 8, 4, 2]
            ))        
        ]}   
)])

if __name__ == '__main__':
    app.run_server(debug=True)

VS.

import dash
import dash_core_components as dcc
import dash_html_components as html
f#rom dash.dependencies import Output, Input, State
import plotly.graph_objs as go
#import pandas as pd

app = dash.Dash()
app.layout = html.Div([
    dcc.Graph(
        id = 'wut',
        figure={
            'data' : [
                dict(
                    type='sankey',
                    #domain = 
                    arrangement = 'fixed',
                        node = dict(
                            pad = 15,
                            thickness = 20,
                            line = dict(color = "black", width = 0.5),
                            label = ["A1", "A2", "B1", "B2", "C1", "C2"],
                            ###x = [0.1, 0.2, 0.24, 0.7, 0.8, .9],
                            y = [0, .2, .3, .4, .5, .6],
                            color = "blue"
                    ),
            link = dict(
                source = [0, 1, 0, 2, 3, 3], # indices correspond to labels, eg A1, A2, A2, B1, ...
                target = [2, 3, 3, 4, 4, 5],
                value = [8, 4, 2, 8, 4, 2]
            ))        
        ]}   
)])

if __name__ == '__main__':
    app.run_server(debug=True)

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

未指定文件或测试。重现 Issue 中的两个 Sankey 示例,然后跟踪 Sankey 节点坐标的处理位置,以确定为什么 x 目前需要 y。完成的标准是:将 arrangement 设置为 fixed 的 Sankey 图表可以在没有 y 的情况下接受 x 坐标,并保留文档所述的行为。

由索引模型根据 Issue 内容生成。

评估

技术栈
python
领域
data-visualization
Issue 类型
功能
难度
3/5
预计耗时
1-2 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
38/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。