Есть ли функция R, которая может помочь мне изменить размер точек рассеяния на графике Парижа? - PullRequest
2 голосов
/ 09 марта 2020

Я использовал pairs(fit, pars = c("mu", "sigma", "lambda"), include = TRUE) для создания гистограмм и диаграмм рассеяния между каждой парой переменных моей модели стан. Сейчас точки на диаграмме рассеяния очень большие, например: enter image description here

Я хочу сделать точки меньше и четче, также, если это возможно, я бы также хотел изменить цвет сюжета. Есть ли функция R, которая может помочь мне сделать это? Спасибо!

1 Ответ

2 голосов
/ 10 марта 2020

Если вы просто хотите построить точки, это можно сделать, указав пользовательскую функцию:

library(rstan)
example(read_stan_csv)
pairs(fit, pars = c("mu", "sigma", "alpha"), log = TRUE,
panel=function(x,y)points(x,y,col="blue",pch=20,cex=0.6))

enter image description here

Под параметром панели мы указали функцию точки, которая имеет цвет "синий", а cex - это параметр для настройки размера точек.

График по умолчанию - это график smoothScatter, вместо отдельных точек он показывает плотность ваши данные указывают. Чтобы изменить его, вы должны вызвать smoothScatter в качестве функции панели, а цвета представлены в виде цветовой палитры. Например:

library(RColorBrewer)
PAL = colorRampPalette(c("white",brewer.pal(6,"Greens")))

pairs(fit, pars = c("mu", "sigma", "alpha"), log = TRUE,
panel=function(x,y){smoothScatter(x,y,add=T,colramp = PAL,cex=2)})

enter image description here

Как упоминалось ранее, это не диаграмма рассеяния, поэтому вы можете видеть, что cex практически не действует. Читая исходный код , обратите внимание, что в некоторых случаях эта функция может отличаться по количеству нанесенных точек. Поэтому вы должны просто указать, что вы изобразили с помощью функции выше, и не предполагать, что она эквивалентна к функции pair.stanfit ().

...