Thank, that's very helpful. :)

This is what worked:
~~~
plot(t,layer(Geom.subplot_grid(Geom.point),ygroup=:_type,x=:rank,y=:thing1,color=:_type),

layer(Geom.subplot_grid(Geom.point),ygroup=:_type,x=:rank,y=:thing2,color=:_type))
~~~

However, now I'd like to color by layer instead of by :_type, since I want
the two layers of dots to be different colors.

This does not work:
~~~
plot(t,layer(Geom.subplot_grid(Geom.point),ygroup=:_type,x=:rank,y=:thing1,color="red"),

layer(Geom.subplot_grid(Geom.point),ygroup=:_type,x=:rank,y=:thing2,color="blue"))
~~~

I've also tried passing the color argument into Geom.point or
Geom.subplot_grid. I tried setting the value of color to be a
"Scale.discrete_color_manual", but the color aesthetic did not consider
that to be an appropriate type.

How do assign per-layer colors?

Thanks,
Leah


On Fri, Jul 25, 2014 at 12:34 PM, Johan Sigfrids <[email protected]>
wrote:

> I think you might have to put the Geom.subplot_grid inside the layers.
>
>
> On Friday, July 25, 2014 7:37:48 PM UTC+3, Leah Hanson wrote:
>>
>> I am trying to make a relatively complicated graph in Gadfly, and am
>> struggling.
>>
>> This is some sample data with the same structure as my data.
>> ~~~
>> julia> t = readtable("testdata.csv")
>> 9x5 DataFrame
>> |-------|---------|------|-------|--------|--------|
>> | Row # | _type   | rank | speed | thing1 | thing2 |
>> | 1     | "red"   | 1    | 10.0  | 0.0    | 0.0    |
>> | 2     | "red"   | 2    | 11.1  | 0.1    | 0.2    |
>> | 3     | "red"   | 3    | 12.4  | 0.3    | 0.0    |
>> | 4     | "green" | 1    | 8.0   | 0.2    | 1.0    |
>> | 5     | "green" | 2    | 7.0   | 0.1    | 0.5    |
>> | 6     | "green" | 3    | 9.0   | 0.2    | 0.0    |
>> | 7     | "blue"  | 1    | 1.0   | 1.0    | 1.0    |
>> | 8     | "blue"  | 2    | 2.0   | 0.2    | 0.2    |
>> | 9     | "blue"  | 3    | 3.0   | 0.1    | 0.1    |
>> ~~~
>>
>> Currently, I am trying to make a plot with three rows; each row has a
>> plot with two layers. The rows are by :_type. The x-axis for everything is
>> :rank. The two layers should be scatterplots of :thing1 and :thing2.
>>
>> I have tried several variations, here is one of them:
>> ~~~
>> julia> plot(t,Geom.subplot_grid(Geom.point),ygroup=:_type,layer(x=:
>> rank,y=:thing1),layer(x=:rank,y=:thing2))
>> Error showing value of type Plot:
>> ERROR: The following aesthetics are required by Geom.point but are not
>> defined: x, y
>>
>>  in error at error.jl:21
>>  in assert_aesthetics_defined at /usr/local/google/home/
>> lhanson/.julia/v0.3/Gadfly/src/aesthetics.jl:148
>>  in render at /usr/local/google/home/lhanson/.julia/v0.3/Gadfly/
>> src/geom/point.jl:27
>>  in render_prepared at /usr/local/google/home/lhanson/.julia/v0.3/Gadfly/
>> src/Gadfly.jl:718
>>  in render at /usr/local/google/home/lhanson/.julia/v0.3/Gadfly/
>> src/geom/subplot.jl:234
>>  in render_prepared at /usr/local/google/home/lhanson/.julia/v0.3/Gadfly/
>> src/Gadfly.jl:718
>>  in render at /usr/local/google/home/lhanson/.julia/v0.3/Gadfly/
>> src/Gadfly.jl:673
>>  in display at /usr/local/google/home/lhanson/.julia/v0.3/Gadfly/
>> src/Gadfly.jl:922
>>  in display at /usr/local/google/home/lhanson/.julia/v0.3/Gadfly/
>> src/Gadfly.jl:837
>>  in print_response at REPL.jl:140
>>  in print_response at REPL.jl:125
>>  in anonymous at REPL.jl:584
>>  in run_interface at ./LineEdit.jl:1377
>>  in run_frontend at ./REPL.jl:816
>>  in run_repl at ./REPL.jl:170
>>  in _start at ./client.jl:399
>> ~~~
>>
>> How do I put layers inside a subplot?
>>
>> Thanks,
>> Leah
>>
>

Reply via email to