使用非数值轴绘制数据集
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))
我得到了这样的东西:
我有这样的数据集:
| 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))
我得到了这样的东西: