Scientifi c обозначение маркировки и добавления строк Ggplot - PullRequest
0 голосов
/ 09 июля 2020

Пытаюсь сделать диаграмму ap ie. Я хочу, чтобы метки были в формате:

Colour
2.5x10^4 pulses
Percentage (%)

Я также хотел бы, чтобы один конкретный фрагмент с надписью «Sample3» немного отделялся от остальной части пончика.

Код До сих пор мне удалось (с небольшой помощью, конечно!):

Type<-c("A","A","B","A","A")
Colour<-c("Sample1","Sample2","Sample3","Sample4","Sample5")
Pulses<-c(25000,25000,14000,25000,25000)
a<-data.frame(Type, Colour, Pulses)

expSup <- function(w, digits=0) {
  sprintf(paste0("%.", digits, "f*x*10^%d"), w/10^floor(log10(abs(w))), floor(log10(abs(w))))
}

library(ggplot2)

# Compute percentages
a$fraction <- a$Pulses/sum(a$Pulses)

# Compute the cumulative percentages (top of each rectangle)
a$ymax = cumsum(a$Pulses)

# Compute the cumulative percentages (top of each rectangle)
a$ymax <- cumsum(a$fraction)

# Compute the bottom of each rectangle
a$ymin <- c(0, head(a$ymax, n=-1))

# Compute label position
a$labelPosition <- (a$ymax + a$ymin) / 2

a$numbering<-parse(text=(expSup(a$Pulses)))

ggplot(a, aes(ymax=ymax, ymin=ymin, xmax=4, xmin=3, fill=Colour))+
  geom_rect(color="black")+
  scale_fill_grey(start = 1, end = 0.1)+
  coord_polar(theta = "y")+
  xlim(c(2,6))+
  geom_text(x=5.0,y=a$labelPosition,
            label=a$numbering,
            size=3.5)+
  theme_minimal()+
  theme(axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        panel.grid = element_blank(),
        legend.position = "none")

Это генерирует диаграмму p ie только с числом. Но я продолжаю получать ошибки, когда пытаюсь прикрепить другие метки и линии.

...