使用Julia的StatsPlots.jl绘制分组柱状图,如何正确添加图例?
解决Julia groupedbar添加图例后数据显示异常的问题
你的问题出在group参数的使用方式上,Plots.jl中groupedbar处理矩阵数据时,group参数不是用来指定行/列分组标签的,强行传入短向量会导致数据匹配错误,只显示部分点。要给不同颜色的柱子加自定义图例,有两种简单的解决方法:
方法一:直接用label参数指定分组标签
当数据是矩阵格式时,矩阵的每一行对应一个分组,直接用label参数传入和行数一致的标签向量即可:
x_data = [5 10; 15 20] groupedbar(["0.2", "0.8"], x_data, xlabel = "X-axis", ylabel="Y-axis", label = ["Category 1" "Category 2"])
这里label的两个元素分别对应矩阵的两行(也就是两个分组),会自动生成对应颜色的图例,同时所有数据点都会正常显示。
方法二:整理数据为向量+group参数
如果你更习惯用group参数,可以把数据拆成x、y向量,同时生成对应的分组标签向量:
# 重复x轴标签,每个标签对应两个分组数据 x = repeat(["0.2", "0.8"], inner=2) # 把矩阵数据展平为向量 y = vec(x_data') # 生成分组标签,每个分组对应两个x位置的数据 groups = repeat(["Category 1", "Category 2"], outer=2) groupedbar(x, y, group=groups, xlabel="X-axis", ylabel="Y-axis")
这样group参数能正确匹配每个数据点的分组,图例和柱形都会正常显示。
内容的提问来源于stack exchange,提问作者React_validatorMan
相关产品推荐
相关产品推荐

