создавать плавающие круговые диаграммы с ggplot - PullRequest
3 голосов
/ 13 марта 2012

В настоящее время я работаю над отчетом с плавающей круговой диаграммой в качестве одного из графиков.В настоящее время я использую пакет plotrix для построения этой круговой диаграммы.Но поскольку я использую ggplot2 для всех остальных графиков, круговая диаграмма выглядит иначе.Поэтому я пытаюсь создать сюжет с помощью ggplot2.В настоящее время у меня есть две проблемы:

  1. Круговые диаграммы ggplot построены на полярной координационной системе.Я хочу построить несколько круговых диаграмм в декартовой системе координации.На данный момент я не знаю, как это сделать.

  2. Я хочу иметь возможность контролировать радиус круговой диаграммы в декартовой системе координации.

Вот код, который я сейчас использую:

library("plotrix")
plot(1:5, type="n", xlab="x", ylab="y")
floating.pie(2, 3, c(1,3,5), radius=0.5)
floating.pie(4, 2, c(2,4), radius=0.2)
floating.pie(4.5, 4, c(3,2,5,1), radius=0.3)

Спасибо за ваше время и помощь.

Ответы [ 2 ]

5 голосов
/ 13 марта 2012
  1. Круговые диаграммы по определению используют полярные координаты.Вы можете наложить некоторые круговые диаграммы на другой график, который использует декартовы координаты, но это, вероятно, будет ужасно.На самом деле круговые диаграммы в большинстве случаев ужасны, так что будьте осторожны с тем, что вы хотите.

  2. Пример на странице coord_polar.

Важный бит в этом коде указывает, что радиус соответствует эстетике "y".

 df <- data.frame(
   variable = c("resembles", "does not resemble"),
   value = c(80, 20)
 )
ggplot(df, aes(x = "", y = value, fill = variable)) + 
  geom_bar(width = 1, stat = "identity") + 
  scale_fill_manual(values = c("red", "yellow")) + 
  coord_polar("y", start = 2 * pi / 3) +    #<- read this line!
  ggtitle("Pac man")
2 голосов
/ 18 августа 2017

У меня была такая же проблема, есть пакет под названием scatterpie, основанный на ggfore решении проблемы.

Это на кране, и вы можете увидеть примеры здесь

...