R plot: как сделать гистограмму с горизонтальными линиями с помощью plot () - PullRequest
1 голос
/ 05 января 2012

Как я могу использовать plot, чтобы повернуть этот график в сторону, чтобы столбцы гистограммы были горизонтальными?

size<- abs(rnorm(20,10,10))
age<-c(seq(1, 20, by=2))
plot(size~age, type=("n")); lines(size~age, type=c("l"), lines(size~age, type=c("h")))

enter image description here

Я хочу примерно что-то вроде этого с горизонтальными линиями гистограммы:

enter image description here

который я сделал с

plot(size~age, type=("n"), yaxt="n", xaxt="n", ylab=""); lines(size~age, type=c("l"), lines(size~age, type=c("h"))); axis(4); axis(1,las=2)

и затем поворот изображения на выходе в другом программном обеспечении.

Я хотел бы знать, как я могу использовать функцию plot для бокового вывода графика вывода, чтобы я мог создавать их группы в R, не поворачивая их вне R.

ОБНОВЛЕНИЕ Благодаря очень полезному предложению от @csgillespie я получил это, которое помогло мне в пути:

size<- abs(rnorm(20,10,10)) 
age<-c(seq(1, 40, by=2)) # sorry for the typo in the first set of example data above
plot(-age~size, type="n",yaxt="n", ylab="Age", xlab="Size")
lines(-age~size)
segments(0, -age, size, -age)
axis(2, labels=c(seq(0,max(age), by=5)), at=-c(seq(0,max(age), by=5)), las=1) # this is a more general approach to labelling the axis ticks

и вот результирующий сюжет (еще не очень, но я думаю, что я могу сделать все остальное отсюда):

enter image description here

1 Ответ

4 голосов
/ 05 января 2012

Вы можете получить то, что вы хотите, используя -age, затем добавляя шкалу вручную.

plot(-age~size, type="n",yaxt="n", xlab="", ylab="Age")
lines(-age~size)
segments(0, -age, size, -age)
axis(2, labels=c(0,5,10,15,20), at=-c(0,5,10,15,20), las=1)

Приведенный выше код приводит к тому же графику, что и для примера, за исключением того, что метка оси Y была повернута.Если вы хотите повернуть метку оси Y, используйте ylab="" в команде plot и добавьте ее вручную с помощью text

enter image description here

...