Hi Bert,
I don't know what does "check.names" do here, but my commands look
like
> mydata <- read.csv('r.3080..csv', header=T,row.names=1)
> head(mydata)
W A X/Y
P1 M 1.469734 0.004144405
P2 M 20.584841 0.008010306
P3 M 53.519800 0.166034888
P4 M 42.308700 0.051545443
P5 M 99.236384 0.893037857
P6 M 94.279504 0.856837525
So when I use
p <- ggplot(mydata, aes(x=W, y='X/Y')) + geom_violin(trim=FALSE)
The output is not correct. I don't see values (scale) on the y-axis.
Anyway, I fixed that with a label.
Regards,
Mahmood
On Wed, Jun 23, 2021 at 11:16 PM Bert Gunter <bgunter.4567 at gmail.com>
wrote:
> I found your specification quite vague. What did you mean by a "data
file"
> -- a data frame in R? -- a file in the file system?
>
> I may be completely wrong here, but another possibility is that you read
> your data into an R data.frame via, e.g. read.table() or read.csv(), but
> failed to specify the check.names = FALSE, argument. This would cause a
> column named "x/y" in your original table to be given the name
"x.y" in R,
> as "x/y" is not a syntactically valid name. See ?make.names for
details.
>
> As others have already said, enclosing non-syntactically valid names in
> back ticks usually works (maybe always works??). So for example:
>
> z<-data.frame (`a/b` = 1:5, y = 1:5, check.names = FALSE)
> plot(y ~ `a/b`, data = z) ## produces desired plot with correct label
> z ## yields:
> a/b y
> 1 1 1
> 2 2 2
> 3 3 3
> 4 4 4
> 5 5 5
>
> Of course, ignore if this is all irrelevant.
>
> Bert Gunter
>
> "The trouble with having an open mind is that people keep coming along
and
> sticking things into it."
> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip
)
>
>
> On Wed, Jun 23, 2021 at 1:37 PM Mahmood Naderan <mahmood.nt at
gmail.com>
> wrote:
>
>> Unfortunately, using 'X/Y' doesn't work either.
>> Instead I used labels like below
>>
>> P + scale_y_continuous(name="X/Y")
>>
>> Thanks for the suggestions.
>>
>> Regards,
>> Mahmood
>>
>>
>>
>>
>> On Wed, Jun 23, 2021 at 9:22 PM Eric Berger <ericjberger at
gmail.com>
>> wrote:
>>
>> > If no one comes up with a better suggestion:
>> > a. Change the column name to "Y" so that you get the
plot you want
>> > b. Use axis labels and legend text to show the text that you want.
(The
>> > user never has to know that you changed the column name ?)
>> >
>> > HTH,
>> > Eric
>> >
>> > On Wed, Jun 23, 2021 at 9:58 PM Mahmood Naderan <mahmood.nt at
gmail.com>
>> > wrote:
>> >
>> >> Hi
>> >> I have a column in my data file which is "X/Y". With
'/' I want to
>> >> emphasize that values are the ratio of X over Y.
>> >> Problem is that in the following command for a violin plot, I
am not
>> able
>> >> to specify that '/' even with double quotes.
>> >>
>> >> p <- ggplot(mydata, aes(x=W, y="X/Y")) +
geom_violin(trim=FALSE)
>> >>
>> >> However, if I change that column to "Y" and use
>> >>
>> >> p <- ggplot(mydata, aes(x=W, y=Y)) +
geom_violin(trim=FALSE)
>> >>
>> >> Then the plot will be correctly shown.
>> >> Any ideas for that?
>> >>
>> >> Regards,
>> >> Mahmood
>> >>
>> >> [[alternative HTML version deleted]]
>> >>
>> >> ______________________________________________
>> >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and
more, see
>> >> https://stat.ethz.ch/mailman/listinfo/r-help
>> >> PLEASE do read the posting guide
>> >> http://www.R-project.org/posting-guide.html
>> >> and provide commented, minimal, self-contained, reproducible
code.
>> >>
>> >
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
[[alternative HTML version deleted]]