我正在尝试使用数据帧创建一个饼图,该数据帧显示悬停时的细分数据。
我使用的数据帧类似于下面的内容:
import pandas as pd
import numpy as np
import plotly.express as px
d = {'Customer': ['Cust 1', 'Cust 1', 'Cust 2', 'Cust 1', 'Cust 2', 'Cust 2', 'Cust 3', 'Cust 3','Cust 4', 'Cust 4', 'Cust 5', 'Cust 4','Cust 5', 'Cust 6', 'Cust 6', 'Cust 6'],
'Product': ['DIGITAL', 'DIGITAL', 'STORE', 'DIGITAL', 'DIGITAL', 'STORE', 'DIGITAL', 'DIGITAL', 'DIGITAL', 'DIGITAL', 'STORE', 'DIGITAL', 'STORE', 'DIGITAL', 'DIGITAL', 'STORE'],
'PO': ['P1', 'P2', 'P3', 'P4', 'P5', 'P6', 'P7', 'P8', 'P9', 'P10', 'P11', 'P12', 'P13', 'P14', 'P15', 'P16'],
'Revenue': [100, 120, 240, 200, 110, 100, 120, 180, 100, 120, 240, 200, 110, 100, 120, 180]}
df = pd.DataFrame(data=d)输出:
fig = px.pie(d, values='Revenue', names='Product')
fig.show()这会产生一个饼图AOK,但我想做的是,在悬停时,显示每个客户的细分和他们的产品收入。
因此,每个悬停都会有一个购买产品的每个客户的列表,以及他们的总收入。例如,如果您将鼠标悬停在Digital上,则悬停框将显示:
Digital
Cust 1: 420
Cust 2: 110
Cust 3: 300
Cust 4: 420
Cust 6: 220任何帮助都将不胜感激。我是Plotly的新手,所以不太确定如何问这个问题,如果你需要更清楚的问题,请告诉我。
发布于 2021-01-12 10:33:55
目前,您不能将饼图分成图。另一种选择是日出图。这可以显示分层数据,这适用于每个产品都有多个客户的情况。下面是一个包含所提供数据的示例:
import pandas as pd
import numpy as np
import plotly.express as px
d = {'Customer': ['Cust 1', 'Cust 1', 'Cust 2', 'Cust 1', 'Cust 2', 'Cust 2', 'Cust 3', 'Cust 3','Cust 4', 'Cust 4', 'Cust 5', 'Cust 4','Cust 5', 'Cust 6', 'Cust 6', 'Cust 6'],
'Product': ['DIGITAL', 'DIGITAL', 'STORE', 'DIGITAL', 'DIGITAL', 'STORE', 'DIGITAL', 'DIGITAL', 'DIGITAL', 'DIGITAL', 'STORE', 'DIGITAL', 'STORE', 'DIGITAL', 'DIGITAL', 'STORE'],
'PO': ['P1', 'P2', 'P3', 'P4', 'P5', 'P6', 'P7', 'P8', 'P9', 'P10', 'P11', 'P12', 'P13', 'P14', 'P15', 'P16'],
'Revenue': [100, 120, 240, 200, 110, 100, 120, 180, 100, 120, 240, 200, 110, 100, 120, 180]}
df = pd.DataFrame(data=d)
fig = px.sunburst(df, values='Revenue', path=['Product','Customer'])
fig.show()输出:

https://stackoverflow.com/questions/65676662
复制相似问题