Как я могу сделать такой график в R? - PullRequest
0 голосов
/ 19 февраля 2020

Мне нужно составить вероятностный график для геохимического анализа (накопленная и концентрация элементов в логарифмическом масштабе), как на рисунке:

enter image description here.

Я пытался с ppPlot в пакете 'qualityTools' с аргументом 'log-normal', но для некоторых элементов это не работает. Он говорит, что мне нужны положительные значения для нормальных логарифмических распределений, но все они положительные, я проверил. Я думаю, что команда использует функцию плотности в базе R, а ее модель плотности непреднамеренно создает отрицательные значения концентрации. Команда 'qqnorm' в базе R создает график другого типа.

Как мне go обойти это?

Редактировать: Вот часть моих данных по магнию (мне нужно сгенерировать аналогичный график с ними):

    mg <- c(51.400, 149.000, 276.000, 135.000, 179.000,  81.000, 116.000,   8.150,   7.770,   7.870,   8.840,  15.600,  13.400,
  57.400,   7.440,  14.800,  40.800,  15.100,  21.400,   5.550,   3.390,  18.800,  20.100,  19.600,  11.600,  11.700,
  12.200,  12.500,  11.700,  12.100,  13.000,  12.300,  13.300,  13.200,  12.600,  29.700,  25.400,  21.000,  11.100,
  11.500,  11.000,  32.600,  17.500,  16.500,  18.100,  27.200,  21.200,  26.400,  18.800,  19.900,  32.000,  28.600,
  29.400,  30.700,   2.370,   2.070,   1.850,   1.970,  24.900,  19.100,  17.400,  23.100,  50.100,  48.800,  18.000,
   15.800,  27.100,  43.500,   4.820,  13.400,  14.600,  24.100,  22.700,  22.500,  43.500,  41.300,  43.700,  41.100,
    40.800,  63.700,   7.700,   8.360,  60.000,  58.400,  63.100,  65.100, 219.000,  25.800,   4.940,   3.670,  13.800,
   5.190,  14.700,  15.000,  13.100,  12.300,  10.700,  10.700,  11.100,  10.100,  10.600,  63.200,  19.800,  22.200,
  17.600,  11.500,  10.600,   9.380,   3.190,   9.180,  10.800, 189.000, 190.000, 152.000, 119.000, 194.000,  56.100)

1 Ответ

1 голос
/ 19 февраля 2020

Это мое решение, но мне пришлось создать новый фрейм данных отверстия со случайными числами:

ggplot()+
  geom_point(data=N,aes(x=Prob,y=AS))+
  scale_x_log10(breaks=c(0.1,1,5,20,50,80,95,99,99.9))+
  scale_y_log10(expand=c(0,0),
breaks=c(seq(0.01,0.1,0.01),seq(0.2,1,0.1),seq(2,10,1)))+
  ylab(paste("As(","\U00B5","g/l)"))+ xlab("Cummulative probability (%)")+
 theme_bw()+annotation_logticks()

Для линий вы должны добавить сегменты и текст в другой слой, например. Ther is a lot to improve in this plot :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...