在饼图中重新组合低百分比数据

Regroup low% data in a pie chart

我正在努力寻找一种方法来对特定部分中的低百分比数据进行分组,例如以动态方式在饼图中对“其他”(假设低于 1%)进行分组(即当我取消选中数据时在图例中,图表会自动更新,因此一些数据会回到 1% 以上,不再属于其他数据。) 我使用这种数据,正如你所看到的,它的可读性不是很好,也不是很美观:

Pie Chart with not grouped data

但我想要类似的东西

Pie Chart with grouped data

我已经得到了类似的东西,但这不是动态的,因为我在将数据提供给图表之前正在处理数据

感谢您的回答

  • 我在处理这个之前没有看到 javascript 标签...
  • 简单的方法 - 只需在使用 plotly
  • 之前准备好数据以聚合小切片
from plotly.subplots import make_subplots
import plotly.graph_objects as go
import plotly.express as px
import numpy as np

# generate some data...
df = pd.DataFrame({"percent": np.concatenate([np.random.uniform(80, 100, 5), np.random.uniform(2, 20, 20)])})
df["percent"] = df["percent"] / df["percent"].sum()

# jus plot as a pie,
fig = px.pie(df, values="percent")


# let's merge the small slices in the data,  plot is the same
df2 = pd.concat([df.loc[df["percent"] < 0.02].sum().to_frame().T, df.loc[df["percent"] >= 0.02]])
fig2 = px.pie(df2, values="percent")


figsp = make_subplots(
    rows=1,
    cols=2,
    specs=[[{"type": "pie"}, {"type": "pie"}]],
    subplot_titles=["ungrouped", "grouped"],
)
figsp.add_trace(fig.data[0], row=1, col=1).add_trace(fig2.data[0], row=1, col=2)