Как я могу устранить лишнее пространство в чарте в базе R? - PullRequest
0 голосов
/ 13 сентября 2018

Я создал стрипчарт в R, используя код ниже:

oldFaithful <- read.table("http://www.isi-stats.com/isi/data/prelim/OldFaithful1.txt", header = TRUE)
par(bty = "n")              #Turns off plot border
stripchart(oldFaithful,     #Name of the data frame we want to graph
    method = "stack",       #Stack the dots (no overlap)
    pch = 20,               #Use dots instead of squares (plot character)
    at = 0,                 #Aligns dots along axis
    xlim = c(40,100))       #Extends axis to include all data

График содержит большое количество дополнительного пространства или пробелов в верхней части графика, как показано ниже.

Stripchart of oldFaithful data

Есть ли способ убрать лишнее пространство сверху?

1 Ответ

0 голосов
/ 13 сентября 2018

Короткий ответ

Добавьте аргумент offset=1, как в

stripchart(oldFaithful, offset=1, ...)

Длинный ответ

Выдействительно нужно копаться в коде stripchart, чтобы понять это!

Когда вы устанавливаете ylim, вызывая stripchart(oldFaithful, ylim=c(p,q)) или когда вы позволяете stripchart использовать его значения по умолчанию, это действительно так.установите ylim, когда он создает пустую область построения.

Однако затем он должен нанести точки на эту пустую область построения.Когда это происходит, значения y для точек с одним значением x указываются как (1:n) * offset * csize.Вот подвох, csize основан на ylim[2], поэтому, чем меньше вы делаете верхний ylim, тем меньше csize, фактически оставляя место в верхней части графика независимо от значения ylim[2].

Заметим, что вы можете "связываться" с ylim[1].Попробуйте это:

stripchart(oldFaithful, ylim=c(2,10), pch=20, method="stack")

ОК, вернемся к решению вашей проблемы.Есть вторая причина, по которой в верхней части графика есть место, и вторая причина - offset.По умолчанию offset=1/3, который (например, csize) "сжимается" на высоту значений y отображаемых точек.Вы можете отрицать это поведение, устанавливая offset ближе или равным единице, как в offset=0.9.

...