2017-07-10 3 views
0

Ich habe einen Datenrahmen von Längenmessungen für zwei Arten von Fischen über mehrere Jahre hinweg. Diese Ausgabe von dput kann unter der Zugriff auf die Daten auf den Link hierGeom_histogram mit Proportionen statt Counts

https://drive.google.com/file/d/0BzArRBVtzxttdUtaZWVoNUwzTFU/view?usp=sharing

EDIT

Durch die Ausgabe zugegriffen werden kann, habe ich einen anderen Link zu der CSV-Datei hinzugefügt. Hoffentlich löst das Problem dadurch

https://drive.google.com/open?id=0BzArRBVtzxttZ2RlcDNKdUFERk0

END EDIT

Ich habe dann Histogramme der Länge Frequenz für jede Art und Jahr erstellt. Wenn die Daten in so fish_data gelesen wird, dann wird der folgende Code

library(dplyr) library(ggglot2) library(scales)

colour_data <- filter(fish_data, Length >= 50 & Length <= 100)

ggplot(fish_data, aes(x = Length)) + geom_histogram(breaks = seq(0, 700, by = 50), colour = "black") + geom_histogram(data = colour_data, breaks = seq(0, 700, by = 50), fill = "red") + scale_x_continuous(breaks = pretty_breaks(n=15)) + facet_grid(Year~Species) + theme_grey() + labs(y = "Frequency caught\n", x = "\nLength (cm)") + theme(axis.text.x = element_text(angle = 45, hjust = 1))

Jedoch habe ich jetzt anzeigen müssen die y-Achse als Anteil eher als Gesamt reproduzierbar Anzahl. So sollte zum Beispiel die Höhe jedes 50-cm-Behälters für jede Facette als Anteil der Gesamtzahl der Fische aufgetragen werden. Die Gesamtanzahl für jede Facette würde sich dann zu 100 summieren.

Ich habe Probleme bei der Konzeption dieses neuen Diagramms. Ich denke, ich müsste den ursprünglichen Datenrahmen manipulieren, aber ich bin mir nicht sicher, wie das aussehen würde.

+0

Meine Maschine Ihre Daten zu erhalten versagt, so konnte ich nicht testen. Aber versuchen Sie den folgenden Zusatz zu Ihrem Code: 'geom_histogram (aes (y = .. count ../ sum (.. count ..)))' – AK88

+0

Prost. Ich habe diesen Code beiden "geom_histogram" -Aufrufen hinzugefügt. Die resultierende Handlung scheint jedoch keinen Sinn zu ergeben. Jede Facette addiert nicht 100 zu 100 –

Antwort

0

Lassen Sie mich wissen, ob dies ist, was Sie wollen:

library(dplyr) 
library(ggplot2) 
library(scales) 

fish_data = read.csv("fish_data.csv", header = T) 


ggplot(fish_data, aes(x = Length)) + 
    geom_histogram(aes(y=..count../sum(..count..) * 100, fill = Length >= 50 & Length <= 100), 
       breaks = seq(0, 700, by = 50)) + 
    scale_fill_manual(values = c('grey50', 'red'), guide = FALSE) + 
    scale_x_continuous(breaks = pretty_breaks(n=15)) + 
    facet_grid(Year~Species) + 
    theme_grey() + 
    labs(y = "Frequency caught\n", x = "\nLength (cm)") + 
    theme(axis.text.x = element_text(angle = 45, hjust = 1)) 

enter image description here

+0

Mein Problem mit der oben genannten Handlung ist, dass einige der Facetten nicht zu 100 hinzuzufügen scheinen. Nämlich die meisten der linken Seiten. Oder verpasse ich gerade etwas? –

+0

Wenn Sie sagen, die Gesamtanzahl für jede Facette würde sich dann zu 100 addieren, meinen Sie die Facetten 'Fish1' und' Fish2' oder 'Fish1-2009',' Fish2-2009', 'Fish1-2010',' Fisch2-2010' usw.? – AK88

+0

Die feineren Facetten. Also 'Fish1-2009',' Fish2-2009' usw. –

Verwandte Themen