ggplot: R-код для построения прямоугольника и линейных графиков для данных многоуровневого моделирования, ограненных значениями - PullRequest
0 голосов
/ 14 мая 2019

Пожалуйста, мне нужна помощь в создании графиков с этими данными, я очень плохо знаком с использованием R, но я знаю, что с их помощью я могу получить свои графики. Если на этот конкретный вопрос был дан ответ, я сожалею об этом. Возможно, я не знал, что именно искать, так как я искал здесь в течение нескольких дней и не получил то, что я хочу. Данные являются симуляцией графа networkx. Это многоуровневый цикл для генерации данных. У меня есть факторы "scf" и "run". Тогда для каждого из них у меня есть размеры между 500 и 15000. Для каждого размера у меня есть проценты 1%, 2%, 3%, 5%, 7% и 10%. Для каждого из этих процентов итерация выполняется 10 раз, от 0 до 9. У меня также есть 2 фактора, показывающих эти данные до (до) и после (после) манипуляции.

Что я хочу достичь, это включить 1 квадратная диаграмма диаметра с предварительными и последующими значениями рядом для каждого измеренного процента с гранями размеров 2 линейных графика до и после значений numE на одном графике с гранями размеров 3 линейных графика до и после значений плотности, ограненных процентами P для каждой группы размеров отдельно.

Я пробовал разные вещи, но не получил результат, так как я новичок в R.

  ggplot(simulation3_mod_500, aes(x = simulation3_mod_500$percentP,     y=simulation3_mod_500$density, group=simulation3_mod_500$node_percent, col=simulation3_mod_500$status)) + 
  geom_line() + 
  xlab('Percent') +
  ylab('Density')  

И это тоже ...

ggplot(data = simulation3_mod, mapping = aes(x = simulation3_mod$percentP, y = simulation3_mod$density, color = simulation3_mod$status)) +
  geom_line() +
  facet_wrap(~ simulation3_mod_500$density)

А это ...

ggplot(simulation3_mod_500, aes(x=simulation3_mod_500$percentP , y=simulation3_mod_500$density, fill=simulation3_mod_500$status)) +
  geom_boxplot() + 
  facet_wrap(~ simulation3_mod_500$percentP)  

Вот часть моих данных, обратите внимание, что это для размера 500, есть и другие размеры там

simulation3_mod_500 <-
  data.frame(
    stringsAsFactors = FALSE,
    percentP = c(
      "1%", "1%", "1%", "1%", "1%", "1%", "1%", "1%", "1%", "1%",
      "1%", "1%", "1%", "1%", "1%", "1%", "1%", "1%", "1%", "1%",
      "2%", "2%", "2%", "2%", "2%", "2%", "2%", "2%", "2%", "2%", "2%",
      "2%"
    ),
    density = c(
      0.008577154, 0.008661514, 0.008661514, 0.008764242,
      0.008764242, 0.008877907, 0.008877907, 0.008968337,
      0.008968337, 0.008918499, 0.008918499, 0.008955224, 0.008955224,
      0.009093437, 0.009093437, 0.009235578, 0.009235578, 0.009362444,
      0.009362444, 0.009522395, 0.009522395, 0.009719645, 0.009719645,
      0.010011171, 0.010011171, 0.010173328, 0.010173328, 0.009743716,
      0.009743716, 0.010035448, 0.010035448, 0.010049866
    ),
    status = c(
      "pre", "post", "pre", "post", "pre", "post", "pre", "post",
      "pre", "post", "pre", "post", "pre", "post", "pre", "post",
      "pre", "post", "pre", "post", "pre", "post", "pre", "post", "pre",
      "post", "pre", "post", "pre", "post", "pre", "post"
    )
  )

1 Ответ

0 голосов
/ 14 мая 2019

@ Камилла имела правильную идею, вам не нужно звонить simulation3_mod_500$ в вашем aes()

ggplot(simulation3_mod_500, aes(x = percentP , y = density, fill = status)) +
  geom_boxplot() +
  facet_wrap(~percentP, scales = "free_x")  

Я добавил scales = "free_x" так, чтобы на обеих диаграммах не было 1% и 2%, они просто имеют значения x, которые присутствуют в фасете.

enter image description here

...