Копировать график в Википедии, связанный с распределением Гаусса - PullRequest
0 голосов
/ 17 октября 2018

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

  • как поместить легенду внизу (я хотел бы получить линии на графике и не знаю, возможно ли это даже с помощью GGplot)
  • заголовок внизу (по-видимому, нужно использовать Grid, но я не могу его использовать) - и различные отметки для оси, на границе (чтобы разделить и подразделить ось и фактически на границе)
  • математическая функция на оси метки, которая выглядит не так, как на графике

enter image description here

ggplot(dataset) + geom_line(aes(x=dataset$X.values, 
y=dataset$Y.values.mean.0.and.variance.2), 
color='navyblue') + 
geom_line(aes(x=dataset$X.values, 
y=dataset$Y.values.mean.0.and.variance.1), 
color='red3') + geom_line(aes(x=dataset$X.values, 
y=dataset$Y.values.mean.0.and.variance.5), 
color='tan2') + geom_line(aes(x=dataset$X.values, 
y=dataset$Y.values.mean..2.and.variance.0.5), 
color='forestgreen') + ylim(0,1) + xlim(-5,5) + 
theme_light() + ylab(expression(varphi[sigma^2,] 
[mu^2](x))) + xlab(expression(x)) +  theme_bw() +
theme(panel.background = element_rect(colour = 
"black", size=1))

Вот мой график

enter image description here

1 Ответ

0 голосов
/ 18 октября 2018

Я думаю, вы должны быть в состоянии сделать все это.

Положение легенды

Вы можете переместить легенду, используя + theme (legend.position = ""), например,

+ theme(legend.position="bottom")

даст вам легенду внизувашего графика.

вы также можете установить положение легенды в соответствии с (x, y) координатами, я уверен, что они масштабируются от 0: 1, поэтому что-то вроде

theme(legend.position = c(0.5, 0.5))

поместит вашу легенду в мертвую точку.

Позиция заголовка

почему бы просто не использовать заголовок, если вы хотите, чтобы он был внизу?

+labs(caption="My Magnificent Caption")

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

+theme(plot.caption = element_text(hjust=0.5, size=20))

, что поместит его в центр.

Шрифт оси и размер

, если ваша проблема с вашей осьюразмер вашего текста, вы можете изменить это, используя + theme (axis.title.x = element_text (size = n)), например,

+ theme(axis.title.x = element_text(size = 20))

сделает ваш заголовок оси X намного больше.

+ theme(axis.title.y = element_text(size = 20))

будет делать то же самое для y.

как для шрифта, мы можем сначала проверить, какие шрифты доступны, используя

windowsFonts()

, затем мы можем добавить любой шрифтВы можете использовать функцию element_text для изменения шрифта.например,

+  theme(axis.title.x = element_text(size = 20,family="mono"))

даст вам большой заголовок оси x, используя шрифт TT Courier New (на моем компьютере, который должен иметь только шрифты по умолчанию и работать для вас тоже).

Заключительно

вы, вероятно, захотите что-то вроде

+labs(caption="My Magnificent Caption")+
 theme(legend.position = c(0.5, 0.8),
       axis.title.y = element_text(size = 20, family="mono"),
       axis.title.x = element_text(size = 20, family="mono"),
       plot.caption = element_text(hjust=0.5, size=20))
...