You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Julia中GroupedDataFrame绘图X轴显示Trace0而非GroupKey的问题

问题:Julia中GroupedDataFrame绘制箱线图时X轴名称显示异常

在使用Julia的PlotlyJS结合GroupedDataFrame绘制箱线图时,希望将分组的公司名称作为X轴标签,但图表仅显示“Trace0”,尝试两种方式均无效:

  1. 直接将GroupKey赋值给name参数
  2. 提取分组的唯一公司名称数组赋值给name参数

原尝试代码:

using PlotlyJS, DataFrames, Tables

gdf=groupby(subset_df, :company_name)

trace_array = []

for key in keys(gdf)
    println(key)
    push!(trace_array, box(y=gdf[key].target_price, name=key))
end

plot(trace_array[2])

第二种尝试代码:

company_name_str = unique(gdf[key].company_name)
println(company_name_str)
push!(trace_array, box(y=gdf[key].target_price, name=company_name_str))

解决思路与修正代码

问题根源:

  • keys(gdf)返回的是GroupKey类型对象,直接传给name参数时,Plotly无法将其解析为字符串标签
  • unique(gdf[key].company_name)返回的是字符串数组(如["某公司"]),但name参数要求传入单个字符串值

修正后的代码:

方式1:直接从GroupKey提取字符串值

using PlotlyJS, DataFrames, Tables

gdf = groupby(subset_df, :company_name)
# 建议添加类型注解,避免类型不稳定
trace_array = AbstractTrace[]

for key in keys(gdf)
    # 从GroupKey中直接提取具体的公司名字符串
    company_name = key.company_name
    push!(trace_array, box(y=gdf[key].target_price, name=company_name))
end

# 绘制所有轨迹或指定单条轨迹
plot(trace_array)
# 绘制单条轨迹:plot(trace_array[2])

方式2:从分组数据中提取单个字符串(而非数组)

using PlotlyJS, DataFrames, Tables

gdf = groupby(subset_df, :company_name)
trace_array = AbstractTrace[]

for key in keys(gdf)
    # 取唯一公司名称的第一个元素,确保是单个字符串
    company_name_str = first(unique(gdf[key].company_name))
    push!(trace_array, box(y=gdf[key].target_price, name=company_name_str))
end

plot(trace_array)

内容的提问来源于stack exchange,提问作者Erik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 15:10:24