for design in list
if len(design) > 12:
df["Name"] = str(design)[:12] + str("...")
fig.add_trace(
go.Box(
x=df["Name"],
y=df[y_variable],
name="",
quartilemethod=quartile_method,
boxpoints=False,
)
因此,如果列表中有两个名称,名称1=ABCDEFGHIJKL名称2=ABCDEFGHIJKLM
截断后名称1=ABCDEFGHIJKL名称2=ABCDEFGHIJKL
所以两者在x中是相同的。
具有相同x的重叠盒印迹
如何克服这一点?我尝试使用唯一标识符,但同时我想在x轴上有相同的
import plotly.express as px
import plotly.graph_objects as go
df = px.data.tips()
df["name"] = df["time"].map({"Dinner": "ABCDEFGHIJKLMNO", "Lunch": "ABCDEFGHIJKLMNOP"})
go.Figure(
[
go.Box(
x=df.loc[df["name"].eq(n), "name"].str[0:12],
y=df.loc[df["name"].eq(n), "total_bill"],
name=n,
boxpoints=False
)
for n in df["name"].unique()
]
).show()
go.Figure(
[
go.Box(
x=df.loc[df["name"].eq(n), "name"],
y=df.loc[df["name"].eq(n), "total_bill"],
name=n,
boxpoints=False
)
for n in df["name"].unique()
]
).update_layout(xaxis=dict(tickmode="array", tickvals=df.loc[:, "name"], ticktext=df.loc[:, "name"].str[0:12]))