Thanks Daniel! Works perfectly! Very much appreciated :)
On Tuesday, May 20, 2014 8:43:55 PM UTC-7, Daniel Jones wrote:
>
> I agree, that should work. I'll try to fix it when I have a chance.
>
> In the mean time, a work around would be to use levels=collect(xs) where
> xs is your vector of names. That will effectively convert the
> PooledDataArray to a regular Array, so should work.
>
>
> On Tue, May 20, 2014, at 08:25 PM, Dan B wrote:
>
> From one Daniel to the next - thanks! :) This looks like exactly what I
> need. If I try manually constructing a vector with the names like you did,
> then it does order the bars. However, if I try to pass in an array, I get
> the following. Please note - Im new to Julia so I may have some
> misunderstanding about how array substitution works, or have made a newbie
> syntax error. Based on your example though this seemed a logical
> substitution.
>
> Thanks!
>
>
>
>
> *using*Gadfly;
>
> set_default_plot_size(30cm, 18cm)
>
> plot(results,y*=*"count",x*=*"name",
>
> Scale.x_discrete(levels*=*results["name"]),
>
> Scale.y_continuous(format*=*:plain),
>
> Scale.discrete_color_manual("#6084b4","#69b461","#8d72b4","#60a6b4","#b460b4","#eea34b","#cc5266","#cb96d6","#75c7eb","#a1d6bb"),
>
> color*=*"name",
>
> Geom.bar,
>
> Guide.xlabel("Name"), Guide.ylabel("Tests"), Guide.title("Title"),
>
> Theme(panel_fill*=*color("#ffffff"), panel_stroke*=*color("#ffffff"),
> grid_color*=*color("#e1e3e5"),
>
> minor_label_color*=*color("#4e5c67"), bar_spacing*=*2mm))
>
>
>
>
>
> no method PooledDataArray{T,R<:Integer,N}(DataArray{UTF8String,1},
> DataArray{UTF8String,1})
> in discretize at /home/ubuntu/.julia/v0.3/Gadfly/src/scale.jl:280
> in apply_scale at /home/ubuntu/.julia/v0.3/Gadfly/src/scale.jl:367
> in apply_scales at /home/ubuntu/.julia/v0.3/Gadfly/src/scale.jl:28
> in apply_scales at /home/ubuntu/.julia/v0.3/Gadfly/src/scale.jl:48
> in render at /home/ubuntu/.julia/v0.3/Gadfly/src/Gadfly.jl:624
> in draw at /home/ubuntu/.julia/v0.3/Gadfly/src/Gadfly.jl:730
> in writemime at /home/ubuntu/.julia/v0.3/Gadfly/src/Gadfly.jl:755
> in sprint at io.jl:460
> in display_dict at /home/ubuntu/.julia/v0.3/IJulia/src/execute_request.jl:27
>
>
>
>
> results["name"]
>
>
>
> Out[40]:
>
> 10-element DataArray{UTF8String,1}:
> "Name 1"
> "Name 2"
>
> "Name 3"
>
> "Name 4"
>
> "Name 5"
>
> "Name 6"
>
> "Name 7"
>
> "Name 8"
>
> "Name 9"
>
> "Name 10"
>
>
> On Tuesday, May 20, 2014 7:23:26 PM UTC-7, Daniel Jones wrote:
>
>
> It should work if you add:
>
> Scale.x_discrete(levels=["a", "b", "c"])
>
> where ["a", "b", "c"] is a vector of the values in the order you'd like
> them to appear.
>
>
>
> On Tue, May 20, 2014, at 05:32 PM, Dan B wrote:
>
> Friends,
>
> I have a simple array that has counts (sorted descending) and names
> associated with each count (please see screenshot). When I plot a bar
> chart with name on the X axis, and count on the Y axis, the bars get
> automatically sorted alphabetically by the names on the Y axis. I would
> like to have the bars sorted ascending or descending by the Y axis (the
> count), essentially to match the order that I have in the array. Am I
> missing something simple?
>
> Thanks in advance!
>
> - - Dan
>
> Email had 1 attachment:
>
> - BarChartOrderingIssue.png
> - 76k (image/png)
>
>