построить несколько отрезков на одном графике, используя R - PullRequest
5 голосов
/ 01 февраля 2012

Как мне продублировать этот стиль графа с несколькими графиками на одном графике и, предпочтительно, с прикрепленными легендами, как показано ниже.

Я попробовал концепцию "фасета", но ggplot2 и trellis: xyplot обаДумайте о гранях как об отдельных панелях, а не о наложенных графиках.

Я могу сделать это с помощью обычных Jane plot () и line () .. но я использовал ggplot2 и woudl, чтобы получить несколько линий на одном графике в этом пакете.

Вот некоторые примеры данных в расширенной форме (взяты из графика с использованием изящного приложения под названием «Graphclick»)

comp <- read.table(pipe("pbpaste"), header=T, sep=',')

company, year, sales
Apple,1975.003,17298.457
Apple,1977.302,16784.502
Apple,1978.314,17298.457
Apple,1980.246,20730.098
Apple,1981.533,27608.426
Apple,1984.293,40862.852
Apple,1986.408,50468.617
Apple,1987.328,48236.188
Apple,1988.892,35676.547
Apple,1989.904,34616.582
Apple,1991.192,44732.742
Apple,1992.387,44732.742
Apple,1993.399,39055.324
Apple,1995.791,37894.922
Apple,1996.895,39648.746
Apple,1998.274,52804.367
Apple,1999.378,61399.512
Apple,2001.770,2.350e5
Apple,2005.265,7.735e5
Toshiba,1999.378,86856.6
Toshiba,2001.862,1.192e5
Toshiba,2004.069,1.495e5
Toshiba,2004.069,1.495e5
IBM,1975.003,22019.092
IBM,1975.830,27195.193
IBM,1976.934,30682.320
IBM,1978.130,31148.527
IBM,1980.430,35676.547
IBM,1981.625,35676.547
IBM,1983.005,39648.746
IBM,1985.305,40862.852
IBM,1986.408,46102.508
IBM,1987.512,64241.156
IBM,1989.996,75832.898
IBM,1991.100,84276.039
IBM,1992.295,85556.641
IBM,1993.307,79342.539
IBM,1994.779,79342.539
IBM,1995.791,84276.039
IBM,1996.895,95082.484
IBM,1996.895,95082.484
Commodore,1975.003,33588.051
Commodore,1975.830,34616.582
Commodore,1977.118,25219.982
Commodore,1978.130,23388.229
Commodore,1979.326,25992.234
Commodore,1980.521,21689.514
Commodore,1981.717,25219.982
Commodore,1984.201,6999.029
Commodore,1985.213,1670.460
Commodore,1986.408,1458.447

вычисление во времени http://www.asymco.com/wp-content/uploads/2012/01/Screen-Shot-2012-01-18-at-1-18-4.31.31-PM.png

Ответы [ 2 ]

5 голосов
/ 07 февраля 2012

так, в ggplot2 этот код работает

qplot(year, sales, data=comp, colour=as.factor(company), group= company, geom="path", log="y")

Теперь осталось только отформатировать значение по оси Y как числовое (не научное обозначение), а метки находятся в нерабочем состоянии.Легенда графика, а не на графиках ... Окончательные предложения приветствуются.

В конце концов, это намного проще, чем plot () + lines (), так как для получения диапазонов требуется вспомогательный код, итерируйтегрупповые уровни и т. д.

image

5 голосов
/ 01 февраля 2012

Если вы ищете максимальный контроль, вы можете просто использовать команды графиков и линий низкого уровня. Используйте «plot» для создания первого графика (с заголовком, xlimits и ylimits), затем используйте «lines» для добавления линий в этот график.

plot(0,type="n", xlim=c(0,10), ylim=c(0,10), xlab="X Label", ylab="Y Label", main="Title")

Затем добавьте строки, используя команду lines:

lines(1:10, 1:10, type="l", lty=2)
lines(2:4, 10:8, col=2, type="l")
lines(6:9, c(5,6,5,6), col=3, type="l")

Вы можете точно настроить внешний вид, используя все параметры, перечисленные в файле справки "par" ("? Par")

Output of commands

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...