[R] Annotation Ticks on the axis

David Winsemius dwinsemius at comcast.net
Fri Aug 11 19:46:08 CEST 2017


> On Aug 11, 2017, at 3:23 AM, Vivek Sutradhara <viveksutra at gmail.com> wrote:
> 
> Hi,
> Thanks for the quick answer. I looked into the link that you provided. But
> I am still not able to implement a solution. Here is my attempt :
> 
> library(ggplot2)
> x<-1:10
> y<-x^2
> df<-data.frame(x=x,y=y)
> p1<-ggplot(df,aes(x,y))+geom_point()+
>  scale_x_log10(
>    breaks = scales::trans_breaks("log10", function(x) 10^x),
>    labels = scales::trans_format("log10", scales::math_format(10^.x))
>  ) +
>  scale_y_log10(
>    breaks = scales::trans_breaks("log10", function(x) 10^x),
>    labels = scales::trans_format("log10", scales::math_format(10^.x))
>  ) +theme_bw()
> p2<-p1 + annotation_logticks()
> p2
> 
> 
> p2 + scale_y_continuous(sec.axis = sec_axis(~.))
> I get the following error :
> Scale for 'y' is already present. Adding another scale for 'y', which will
> replace the existing scale.
> 
StackOverflow question with extensive commentary:

Plot with 2 y axes, one y axis on the left, and another y axis on the right
https://stackoverflow.com/questions/3099219/plot-with-2-y-axes-one-y-axis-on-the-left-and-another-y-axis-on-the-right

David.

> My questions :
> 1. How do I change the breaks and labels to correspond to those in my
> earlier plot with R graphics? I don't want the 10^x format.
> 2. When I try with the annotation_logticks('trbl') option in the above
> code, I get the error :
> Error in base - 1 : non-numeric argument to binary operator
> 3. I don't see how I can use the secondary axis option. I can see how I can
> multiply the y-variable (or x) by a constant ( e.g. by sec_axis(~.*10)).
> But I don't see how I can use it with a function. For example, with log or
> exp.
> 4. How can I create extra space in the margins with ggplot? Would the par()
> command work here as well?
> 
> Would appreciate continued help.
> Thanks
> 
> 2017-08-11 11:49 GMT+02:00 PIKAL Petr <petr.pikal at precheza.cz>:
> 
>> Hi
>> 
>> see in line
>>> -----Original Message-----
>>> From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Vivek
>>> Sutradhara
>>> Sent: Friday, August 11, 2017 11:02 AM
>>> To: r-help <r-help at r-project.org>
>>> Subject: [R] Annotation Ticks on the axis
>>> 
>>> Hi all,
>>> 
>>> I would like to have help in getting annotation ticks (corresponding to
>> the
>>> minor grid) on my plot. Here is my toy example :
>>> 
>>> 
>>> par(mar=c(5, 6, 5, 5) + 0.1)
>>> 
>>> x<-1:10
>>> 
>>> y<-x^2
>>> 
>>> plot(x,y,log="xy",xlab="log(x)",ylab="log(y)")
>>> 
>>> par(new=T)
>>> 
>>> plot(log(x),log(y),type='n',col="red",xaxt="n",yaxt="n",xlab="",ylab="")
>>> 
>>> axis(side=3,tick=TRUE,at=pretty(range(log(x))))
>>> 
>>> mtext("log(x) with log labels",side=3,line=3)
>>> 
>>> axis(side=4,tick=TRUE,at=pretty(range(log(y))))
>>> 
>>> mtext("log(y) with log labels",side=4,line=3)
>>> 
>>> par()
>>> 
>>> 
>>> I have the following questions :
>>> 
>>> 1. I get a long output after the final par command. How can I make this
>> output
>>> silent?
>> 
>> pp<-par()
>> 
>>> 
>>> 2. I would like to get ticks corresponding to the command
>> annotation_logticks
>>> in ggplot2. Actually, it would be easiest for me to work directly with
>> ggplot. But
>>> I am not able to implement the secondary axis option with ggplot. Would
>>> appreciate help with that, if it is easier.
>> 
>> http://ggplot2.tidyverse.org/reference/sec_axis.html
>> 
>> Cheers
>> Petr
>> 
>>> 
>>> Thanks,
>>> 
>>> Vivek
>>> 
>>>      [[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.
>> 
>> ________________________________
>> Tento e-mail a jakékoliv k němu připojené dokumenty jsou důvěrné a jsou
>> určeny pouze jeho adresátům.
>> Jestliže jste obdržel(a) tento e-mail omylem, informujte laskavě
>> neprodleně jeho odesílatele. Obsah tohoto emailu i s přílohami a jeho kopie
>> vymažte ze svého systému.
>> Nejste-li zamýšleným adresátem tohoto emailu, nejste oprávněni tento email
>> jakkoliv užívat, rozšiřovat, kopírovat či zveřejňovat.
>> Odesílatel e-mailu neodpovídá za eventuální škodu způsobenou modifikacemi
>> či zpožděním přenosu e-mailu.
>> 
>> V případě, že je tento e-mail součástí obchodního jednání:
>> - vyhrazuje si odesílatel právo ukončit kdykoliv jednání o uzavření
>> smlouvy, a to z jakéhokoliv důvodu i bez uvedení důvodu.
>> - a obsahuje-li nabídku, je adresát oprávněn nabídku bezodkladně přijmout;
>> Odesílatel tohoto e-mailu (nabídky) vylučuje přijetí nabídky ze strany
>> příjemce s dodatkem či odchylkou.
>> - trvá odesílatel na tom, že příslušná smlouva je uzavřena teprve
>> výslovným dosažením shody na všech jejích náležitostech.
>> - odesílatel tohoto emailu informuje, že není oprávněn uzavírat za
>> společnost žádné smlouvy s výjimkou případů, kdy k tomu byl písemně zmocněn
>> nebo písemně pověřen a takové pověření nebo plná moc byly adresátovi tohoto
>> emailu případně osobě, kterou adresát zastupuje, předloženy nebo jejich
>> existence je adresátovi či osobě jím zastoupené známá.
>> 
>> This e-mail and any documents attached to it may be confidential and are
>> intended only for its intended recipients.
>> If you received this e-mail by mistake, please immediately inform its
>> sender. Delete the contents of this e-mail with all attachments and its
>> copies from your system.
>> If you are not the intended recipient of this e-mail, you are not
>> authorized to use, disseminate, copy or disclose this e-mail in any manner.
>> The sender of this e-mail shall not be liable for any possible damage
>> caused by modifications of the e-mail or by delay with transfer of the
>> email.
>> 
>> In case that this e-mail forms part of business dealings:
>> - the sender reserves the right to end negotiations about entering into a
>> contract in any time, for any reason, and without stating any reasoning.
>> - if the e-mail contains an offer, the recipient is entitled to
>> immediately accept such offer; The sender of this e-mail (offer) excludes
>> any acceptance of the offer on the part of the recipient containing any
>> amendment or variation.
>> - the sender insists on that the respective contract is concluded only
>> upon an express mutual agreement on all its aspects.
>> - the sender of this e-mail informs that he/she is not authorized to enter
>> into any contracts on behalf of the company except for cases in which
>> he/she is expressly authorized to do so in writing, and such authorization
>> or power of attorney is submitted to the recipient or the person
>> represented by the recipient, or the existence of such authorization is
>> known to the recipient of the person represented by the recipient.
>> 
> 
> 	[[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.

David Winsemius
Alameda, CA, USA

'Any technology distinguishable from magic is insufficiently advanced.'   -Gehm's Corollary to Clarke's Third Law



More information about the R-help mailing list