2016-07-02 8 views
2

ich das folgende Beispiel für meine Frage verwendet haben: http://www.cmap.polytechnique.fr/~lepennec/R/Radar/RadarAndParallelPlots.htmlggplot2 verfärben spezifischer Linie von Radar-Chart

mtcarsscaled <- as.data.frame(lapply(mtcars, ggplot2:::rescale01)) 
mtcarsscaled$model <- rownames(mtcars) 
mtcarsmelted <- reshape2::melt(mtcarsscaled) 

coord_radar <- function (theta = "x", start = 0, direction = 1) 
{ 
    theta <- match.arg(theta, c("x", "y")) 
    r <- if (theta == "x") 
    "y" 
    else "x" 
    ggproto("CordRadar", CoordPolar, theta = theta, r = r, start = start, 
      direction = sign(direction), 
      is_linear = function(coord) TRUE) 
} 

plot <- ggplot(mtcarsmelted, aes(x = variable, y = value)) + 
    geom_polygon(aes(group = model, color = model), fill = NA, size = 2, show.legend = FALSE) + 
    geom_line(aes(group = model, color = model), size = 2) + 
    theme(strip.text.x = element_text(size = rel(0.8)), 
     axis.text.x = element_text(size = rel(0.8)), 
     axis.ticks.y = element_blank(), 
     axis.text.y = element_blank()) + 
    xlab("") + ylab("") + 
    guides(color = guide_legend(ncol=2)) + 
    coord_radar() 

print(plot) 

Wie kann ich die Farbe der äußersten Linie des Plots/Raster (die Zeile unter den y-labels)?

Jede Hilfe wird sehr geschätzt!

Antwort

0

Diese Zeile wird leider mit dem Argument grid.major gesteuert, ist aber keine explizite Unterbrechung. Der einzige Weg, die ich gefunden habe, dies zu tun ist durch den Rest der Pausen Cancelling etwa so:

ggplot(mtcarsmelted, aes(x = variable, y = value)) + 
    geom_polygon(aes(group = model, color = model), fill = NA, size = 2, show.legend = FALSE) + 
    geom_line(aes(group = model, color = model), size = 2) + 
    theme(strip.text.x = element_text(size = rel(0.8)), 
     axis.text.x = element_text(size = rel(0.8)), 
     axis.ticks.y = element_blank(), 
     axis.text.y = element_blank(), 
     panel.grid.major.y = element_line(colour = "blue", size = 0.2), #changed 
    xlab("") + ylab("") + 
    guides(color = guide_legend(ncol=2)) + 
    scale_y_continuous(breaks = NULL) + #changed 
    coord_radar() 

Welche gibt:

enter image description here

Leider Sie verlieren die Fähigkeit, eine y-Gitter zu haben (was um ehrlich zu sein, wenn Sie nicht in einem polaren Raster beschriften, ist sowieso nicht so wichtig). Sie können die Farbe mit dem Argument color in element_line

ändern