2011-10-20 108 views
2

我有一個四維數據集,讓我們稱之爲變量x,y,z和r。 x和y的每個組合最多隻有一個條目。 目前,我有一個散點圖,其中我爲每個條目繪製位置(x,y)和大小爲z的點。ggplot2:餅圖代替xy scatterplot中的點

ggplot(aes(x=x,y=y)) + geom_point(aes(size=z)) 

這產生了很好的情節,但現在我想如下的「升級」吧:我想用一個餅圖來代替每個點,和餅圖應該是大小的點相同。該餡餅由兩部分組成,一部分是藍色,另一部分是橙色,佔餡餅比例(r總是介於0和1之間)。

有關如何優雅地做到這一點的任何想法?

乾杯

+1

此線程應該讓你去:http://stackoverflow.com/questions/2181902/how-to-use-an-image-as-a-point-in-ggplot –

+2

我想你'升我必須[寫一個新的幾何](https://github.com/hadley/ggplot2/wiki/Creating-a-new-geom),並且可能還會有一個新的比例。 – baptiste

+0

感謝您的鏈接約翰;如果我只在當前圖形的頂部添加一個'stat_spoke',它就能很好地實現這個技巧! – mitchus

回答

1

該做的伎倆:

ggplot(aes(x=x,y=y)) + geom_point(aes(size=z)) + stat_spoke(aes(angle=r*2*pi, radius=3*z))

+0

我看到如何從中獲得兩個維度,但它本身不是餅圖。我沒有在http://docs.ggplot2.org/current/stat_spoke.html –

+0

@DavidJames上看到任何餅圖示例。你是對的,它不是一個餅圖。就我而言,由於我只是想爲每個點表示一個比例「r」,所以發言很好。 – mitchus

0

您可以使用ggforce實現的功能,但有人已經做到了這一點給你,並創建了另一條R包稱爲scatterpie,你可以找到它here