使用非数值轴绘制数据集

Plotting dataset with non-numerical axis

我有这样的数据集:

| Name  | 2017 | 2018 |
-----------------------
| Alice |  12  |  15  |
| Bob   |  11  |  10  |  

我想用水平堆积条形图绘制它,这样在 Y 轴上我有 Alice 和 Bob,在 X 轴上有来自 table 的数字(Alice 的条形图有 12,然后是 15-比例长度,Bob 也是如此)。

我尝试先获取 2017 年的数据,所以我做到了

using DataFrames, Gadfly
df = readtable("a.csv")
plot(df, x="2017", Geom.bar)

其中 a.csv

Name,2017,2018
Alice,12,15
Bob,11,10

但是我得到了

Error showing value of type Gadfly.Plot:

ERROR: UndefVarError: unshift! not defined

我也试过了

plot(df, x="2017", y="Name", Geom.bar)

得到了

Error showing value of type Gadfly.Plot:

ERROR: MethodError: no method matching zero(::Type{String})

这里的问题似乎在于 Y 轴上的数据是非数字的。

我有 Julia 0.6.2。

你可以做到

df_tr = stack(df, [:x2017,:x2018])
Gadfly.plot(df_tr, color = "variable", x="value", y="Name",
             Geom.bar(position=:stack, orientation= :horizontal))

我得到了这样的东西: