R: Регулировка меток в круговой диаграмме

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

Я прочитал vigenette и признаю, что некоторые из них прошли через мою голову,

Мне было интересно, есть ли быстрый способ удалить все метки на моей диаграмме, включая отметки, и просто добавить обратно в AUDI, VOLVO и BMW светло-серый цвет под тем же углом к ​​сектору, что и в этом примере

library (dplyr)
library(circlize)

df = read.table(textConnection("
 Brand_from model_from Brand_to Model_to
                           VOLVO        s80      BMW  5series
                           BMW    3series      BMW  3series
                           VOLVO        s60    VOLVO      s60
                           VOLVO        s60    VOLVO      s80
                           BMW    3series     AUDI       s4
                           AUDI         a4      BMW  3series
                           AUDI         a5     AUDI       a5
                           "), header = TRUE, stringsAsFactors = FALSE)


# Add customer satisfaction (1 being positive, 0 being negative)
df <- df %>%
  mutate(Customer.Sat = c("POS","NEG","NEG","POS","POS","NEG","NEG")) %>%
  select(Brand_from,Brand_to,Customer.Sat )

# Set the colour Scheme for the association
col = c("NEG" = "red",
    "POS" = "green")

diffHeight = c("POS" = -0.02,
           "NEG" = 0.04)

# Build the Chord Diagram
chordDiagram(df[1:2], 
         col = col[df$Customer.Sat],
         diffHeight = diffHeight[df$Customer.Sat])

circos.clear()

Я вижу, что это возможно на основе страницы 17 виньетки с использованием кода

# Rotates the Labels so they are 90 Degrees to the chord diagram
circos.trackPlotRegion(track.index = 1, panel.fun = function(x, y) {
 xlim = get.cell.meta.data("xlim")
 ylim = get.cell.meta.data("ylim")
 sector.name = get.cell.meta.data("sector.index")
 circos.text(mean(xlim), ylim[1] + .1, sector.name, facing = "clockwise", niceFacing = TRUE, adj = c(0, 0.5))
 circos.axis(h = "top", labels.cex = 0.5, major.tick.percentage = 0.2,     sector.index = sector.name, track.index = 2)
}, bg.border = NA)

Я видел ответ на Поворот меток в chordDiagram (R circlize), который очень похож

Однако это не удаляет существующие метки, такие как галочки и названия секторов.

1 ответ

Решение

Мне было интересно, есть ли быстрый способ удалить все метки на моей диаграмме, включая отметки, и просто добавить обратно в AUDI, VOLVO и BMW светло-серый цвет под тем же углом к ​​сектору, что и в этом примере

Вы можете попробовать

chordDiagram(df[1:2], col = col[df$Customer.Sat], diffHeight = diffHeight[df$Customer.Sat], annotationTrack = "grid", preAllocateTracks = 1)
circos.trackPlotRegion(track.index = 1, panel.fun = function(x, y) {
  xlim = get.cell.meta.data("xlim")
  ylim = get.cell.meta.data("ylim")
  sector.name = get.cell.meta.data("sector.index")
  circos.text(mean(xlim), ylim[1] + .1, sector.name, facing = "clockwise", niceFacing = TRUE, adj = c(0, 0.5), col = "lightgray")
}, bg.border = NA)

что дает вам

У меня фактически была та же проблема, что "старые" метки были все еще там, когда я хотел повернуть метки. Уловка для меня заключалась в использовании

chordDiagram(as.matrix(данные)..... и т.д..

поэтому, когда я прямо сказал, что у меня есть матрица, она работает.

Другие вопросы по тегам