2017-06-09 2 views
0

Ich habe ein Diagramm wie das unten, mit einem Faktor auf der y-Achse variabel.ggplot2 mit Faktor Variable Y-Achse und entfernte Leerzeichen

library(reshape2) 
library(ggplot2) 

MA <- c("A", "B", "C") 

dfr <- data.frame(
    name  = factor(MA, levels = MA), 
    start  = 1:3, 
    end   = 3:5, 
    prozent  = c(1,0.5,0.75) 
) 
mdfr <- melt(dfr, measure.vars = c("start", "end")) 

ggplot(mdfr, aes(value, name)) + geom_line(aes(size = prozent)) + scale_size_area() 

enter image description here

ich das Leerzeichen entfernen möchten (oder in Standard ggplot2 "greyspace") zwischen den horizontalen Linien, so dass sie einander berühren.

+1

Vertikale Ausweichen über 'ggstance :: position_dodgev' könnte hier Potential haben. Sie verlieren jedoch Ihre "Name" -Etiketten auf der Achse. Abhängig davon, was Sie für Ihr Endergebnis haben möchten, könnte das gut sein, da diese Etiketten bei Verwendung von 'expand 'sowieso ziemlich zerquetscht werden und das Hinzufügen anderer Textbezeichnungen könnte ebenso nützlich sein. – aosmith

Antwort

1

Sie tun könnte wie folgt:

ggplot(mdfr, aes(value, name)) + 
    geom_line(aes(size = prozent)) + 
    scale_size_area() + 
    scale_y_discrete(expand = c(7, 0)) 
+0

Ich denke, das ist keine allgemeine Lösung. Wenn Sie Ihre Größe ändern, sehen Sie immer noch "Greyspaces". – Lstat

+0

Für den Moment bin ich froh, dass es zwischen den Zeilen keinen "Greyspace" * mehr gibt, zumindest mit etwas Fudging, abhängig von der Größe der Handlung. Das heißt, wenn es möglich wäre, auch den jetzt vergrößerten Greyspace über und unter den Linien zu reduzieren, wäre das großartig! –

+0

@Lstat nicht wirklich in der Tat, aber ich denke, es ist schwierig, die "grayspace" für ein Faktor-basierte "y-Grid" zu manipulieren. Ansonsten könntest du einfach ein 'limit()' setzen. Weißt du zufällig andere Möglichkeiten, dies zu tun? – AK88

Verwandte Themen