Управлять размером точек в R scatterplot?

В R, plot() функция берет a pch аргумент, который управляет появлением точек в графике. Я делаю scatterplots с десятками тысяч точек и предпочитаю маленькое, но не слишком маленькая точка. В основном я нахожу pch='.' быть слишком маленьким, но pch=19 быть слишком толстым. Есть ли что-то в середине или некотором способе уменьшить масштаб точек так или иначе?

110
задан desertnaut 26 February 2019 в 21:58
поделиться

3 ответа

Попробуйте аргумент cex :

? Par

  • cex
    Числовое значение, определяющее величину , на которую следует увеличивать отображаемый текст и символы относительно по умолчанию. Обратите внимание, что некоторые графические функции , такие как plot.default, имеют аргумент этого имени , который умножает этот графический параметр , а также некоторые функции, такие как {{1 }} точки принимают вектор значений , которые повторно используются. В других случаях будет принимать только первое значение, если предоставлен вектор длины больше единицы .
92
ответ дан 24 November 2019 в 03:14
поделиться

pch = 20 возвращает символ размером между "." и 19.

Это заполненный символ (что, вероятно, вам и нужно).

Помимо этого, даже базовая графическая система в R позволяет пользователю детально управлять размером, цветом и формой символа. Например,

dfx = data.frame(ev1=1:10, ev2=sample(10:99, 10), ev3=10:1)

with(dfx, symbols(x=ev1, y=ev2, circles=ev3, inches=1/3,
                  ann=F, bg="steelblue2", fg=NULL))

Graph example

95
ответ дан 24 November 2019 в 03:14
поделиться

Как указано в rcs , cex выполнит работу в базовом графическом пакете. Я считаю, что вы не желаете строить свой график в ggplot2 , но если вы это сделаете, есть эстетический атрибут size , которым вы можете легко управлять ( ggplot2 имеет удобные для пользователя аргументы функции: вместо ввода cex (расширение символов) в ggplot2 вы можете ввести, например, size = 2 , и вы получите точку 2 мм ).

Вот пример:

### base graphics ###
plot(mpg ~ hp, data = mtcars, pch = 16, cex = .9)

### ggplot2 ###
# with qplot()
qplot(mpg, hp, data = mtcars, size = I(2))
# or with ggplot() + geom_point()
ggplot(mtcars, aes(mpg, hp), size = 2) + geom_point()
# or another solution:
ggplot(mtcars, aes(mpg, hp)) + geom_point(size = 2)
21
ответ дан 24 November 2019 в 03:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: