- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据框:
Vendor Name Category Count
AKJ Education Books 846888
AKJ Education Computers & Tablets 1045
Amazon Books 1294423
Amazon Computers & Tablets 42165
Amazon Other 415
Flipkart Books 1023
最佳答案
帖子回复How to define the structure of a sankey diagram using a dataframe?将向您展示强制您的 Sankey 数据源进入一个数据帧可能会很快导致困惑。最好将节点与链接分开,因为它们的构造不同。
所以你的节点数据框应该是这样的:
ID Label Color
0 AKJ Education #4994CE
1 Amazon #8A5988
2 Flipkart #449E9E
3 Books #7FC241
4 Computers & tablets #D3D3D3
5 Other #4994CE
Source Target Value Link Color
0 3 846888 rgba(127, 194, 65, 0.2)
0 4 1045 rgba(127, 194, 65, 0.2)
1 3 1294423 rgba(211, 211, 211, 0.5)
1 4 42165 rgba(211, 211, 211, 0.5)
1 5 415 rgba(211, 211, 211, 0.5)
2 5 1 rgba(253, 227, 212, 1)
1
:
# imports
import pandas as pd
import numpy as np
import plotly.graph_objs as go
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
init_notebook_mode(connected=True)
# Nodes & links
nodes = [['ID', 'Label', 'Color'],
[0,'AKJ Education','#4994CE'],
[1,'Amazon','#8A5988'],
[2,'Flipkart','#449E9E'],
[3,'Books','#7FC241'],
[4,'Computers & tablets','#D3D3D3'],
[5,'Other','#4994CE'],]
# links with your data
links = [['Source','Target','Value','Link Color'],
# AKJ
[0,3,1,'rgba(127, 194, 65, 0.2)'],
[0,4,1,'rgba(127, 194, 65, 0.2)'],
# Amazon
[1,3,1,'rgba(211, 211, 211, 0.5)'],
[1,4,1,'rgba(211, 211, 211, 0.5)'],
[1,5,1,'rgba(211, 211, 211, 0.5)'],
# Flipkart
[2,5,1,'rgba(253, 227, 212, 1)'],
[2,3,1,'rgba(253, 227, 212, 1)'],]
# links with some data for illustrative purposes ################
#links = [
# ['Source','Target','Value','Link Color'],
#
# # AKJ
# [0,3,846888,'rgba(127, 194, 65, 0.2)'],
# [0,4,1045,'rgba(127, 194, 65, 0.2)'],
#
# # Amazon
# [1,3,1294423,'rgba(211, 211, 211, 0.5)'],
# [1,4,42165,'rgba(211, 211, 211, 0.5)'],
# [1,5,415,'rgba(211, 211, 211, 0.5)'],
#
# # Flipkart
# [2,5,1,'rgba(253, 227, 212, 1)'],]
#################################################################
# Retrieve headers and build dataframes
nodes_headers = nodes.pop(0)
links_headers = links.pop(0)
df_nodes = pd.DataFrame(nodes, columns = nodes_headers)
df_links = pd.DataFrame(links, columns = links_headers)
# Sankey plot setup
data_trace = dict(
type='sankey',
domain = dict(
x = [0,1],
y = [0,1]
),
orientation = "h",
valueformat = ".0f",
node = dict(
pad = 10,
# thickness = 30,
line = dict(
color = "black",
width = 0
),
label = df_nodes['Label'].dropna(axis=0, how='any'),
color = df_nodes['Color']
),
link = dict(
source = df_links['Source'].dropna(axis=0, how='any'),
target = df_links['Target'].dropna(axis=0, how='any'),
value = df_links['Value'].dropna(axis=0, how='any'),
color = df_links['Link Color'].dropna(axis=0, how='any'),
)
)
layout = dict(
title = "Draw Sankey Diagram from dataframes",
height = 772,
font = dict(
size = 10),)
fig = dict(data=[data_trace], layout=layout)
iplot(fig, validate=False)
关于python - Plotly:如何从数据框中绘制桑基图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50486767/
在默认的 Highcharts Sankey 图表中,您可以将鼠标悬停在各个路径上,这些路径会突出显示。 我希望能够悬停在节点上 - 例如下面示例中的加拿大 - 并在悬停在该节点上时突出显示所有红色路
我想知道一个特定的节点是否可以在类似states in hover(linkOpacity)的Click上高亮显示并在单击其他节点/系列时将其替换为之前的颜色。 简而言之,加载图表时,最上面的节点最初
(Plotly 4.10.0、Python 3.8.0、Ubuntu 20.04) 我正在使用 Plotly Sankeys,但自动放置看起来很麻烦(可惜我无法手动放置节点)。 import plot
如何根据过渡在 x 轴上显示动态文本。在我的第一个案例中,我得到两个转换(足球 -> 篮球和篮球 -> Gerard),因此我将显示两个标签,如下所示 但是当我们只得到一个转换时,如何处理 x 轴上的
我需要在桑基图之外显示标签,但我很难在外面显示。我尝试使用一些属性,如裁剪、溢出和对齐。尽管如此,它仍然不起作用。我需要在图表外部显示左侧和右侧的标签。 这是我的代码 Highcharts.chart
我是一名优秀的程序员,十分优秀!