[英]How to order a categorical variable in a boxplot using the Julia package Gadfly
Gadfly does not seem to use the (level) order of categorical variables: Gadfly 似乎没有使用分类变量的(级别)顺序:
using CSV
using DataFrames
using Gadfly
using HTTP
url = "https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv"
tips = CSV.File(HTTP.get(url).body) |> DataFrame
categorical!(tips, :day)
ordered!(tips.day, true)
levels!(tips.day, ["Thur", "Fri", "Sat", "Sun"])
Gadfly.plot(tips, x=:day, y=:total_bill, color=:smoker, Geom.boxplot)
Should the plot not inherit the order specified in the categorical variable?绘图不应该继承分类变量中指定的顺序吗?
I found a way to order the categorical values, but that feels a little 'buggy' because of specifying the order again.我找到了一种对分类值进行排序的方法,但由于再次指定顺序,感觉有点“错误”。
Gadfly.plot(tips, x=:day, y=:total_bill, color=:smoker, Geom.boxplot,
Scale.x_discrete(levels=levels(tips.day)))
Any suggestions how to solve this?任何建议如何解决这个问题?
In Gadfly, for discrete x
the order of the values is determined by their order in the dataframe (so currently the level order in the CategoricalArray is not supported).在 Gadfly 中,对于离散x
,值的顺序由它们在数据帧中的顺序决定(因此目前不支持 CategoricalArray 中的级别顺序)。 It might not be supported in the future, because DataFrames plans to drop CategoricalArrays ( https://github.com/JuliaData/DataFrames.jl/issues/2321 ).将来可能不支持它,因为 DataFrames 计划放弃 CategoricalArrays ( https://github.com/JuliaData/DataFrames.jl/issues/2321 )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.