[R] Scale y-labels based on a value with 'lattice'

Duncan Mackay dulcalma at bigpond.com
Fri May 27 07:51:11 CEST 2016


If you want to change the cex of the labels see


Possibly an easier way is to size the symbols

I will use Jims data.frame to plot with lattice
dotplot(Group.2 ~ x, data = kedf, 
                 scales = list(y = list(labels = kedf[,"Group2"], cex = = kedf[,"Freq"]))) 

 If you want to magnify the size of the symbol according to Freq

dotplot(Group.2 ~ x, data = kedf, 
                cex = kedf[,"Freq"])

or with modifications
dotplot(Group.2 ~ x, data = kedf, 
                col = "black",
               pch = 15,
                cex = kedf[,"Freq"])

If you wanted to go further

dotplot(Group.2 ~ x, data = kedf,
        par.settings = list(dot.symbol = list(col = "black",
                                              pch = 15)  ),
        cex = kedf[,"Freq"])

without further work cex will not work as it is in par settings



Duncan Mackay
Department of Agronomy and Soil Science
University of New England
Armidale NSW 2351
Email: home: mackay at northnet.com.au

-----Original Message-----
From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of K. Elo
Sent: Friday, 27 May 2016 00:52
To: r-help at r-project.org
Subject: [R] Scale y-labels based on a value with 'lattice'

Dear R-helpers!

I have a data frame storing data for word co-occurrences, average 
distances and co-occurence frequency:

       Group.1    Group.2     x Freq
1 deutschland  achtziger  2.00    1
2 deutschland        alt  1.25    4
3 deutschland     anfang -2.00    1
4 deutschland    ansehen  1.00    2
5 deutschland     arbeit  0.50    2
6 deutschland arbeitslos -2.00    1

Now I want to plot a lattice 'dotplot' with the formula 'Group.2~x'. 
This works fine.

However, I would like to scale the y-label (based on 'Group.2' according 
the 'Freq' value using a log-scaled value (log(Freq+.5)). In other 
words: the higher the 'Freq' value of a term, the bigger its label 
should be printed in my dotplot.

The problem is that I cannot figure out how to tell lattice to scale 
each y-label with according 'Freq' value. I am quite sure I should build 
a function for scales=list(y=...), but I don't know how to it.

Many thanks in advance for your help!

Kimmo Elo

Åbo Akademi University / German studies
Turku, Finland

R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

More information about the R-help mailing list