我有一個CSV文件,包含3列,X值,Y值及其相應的十六進制值(#RRGGBB)。我一直在嘗試創建一個散點圖/氣泡圖,氣泡的內部根據十六進制值進行着色。R十六進制散點圖
symbols(year, logtrans, circles=size, inches=0.05, bg=intel2$HexLogClock)
intel2 $ HexLogClock包含十六進制值。
對不起noob問題,任何幫助表示讚賞。
我有一個CSV文件,包含3列,X值,Y值及其相應的十六進制值(#RRGGBB)。我一直在嘗試創建一個散點圖/氣泡圖,氣泡的內部根據十六進制值進行着色。R十六進制散點圖
symbols(year, logtrans, circles=size, inches=0.05, bg=intel2$HexLogClock)
intel2 $ HexLogClock包含十六進制值。
對不起noob問題,任何幫助表示讚賞。
我覺得你的麻煩可能在於不是一個字符的十六進制值。確保他們是第一個。見下面的例子:
year <- 1:5
logtrans <- log(year)
size <- rep(15,5)
intel2 <- data.frame(HexLogClock=c("#330000", "#FFFFCC", "#660000", "#FF0000", "#00FF00"),stringsAsFactors=FALSE)
symbols(year, logtrans, circles=size, inches=0.05, bg=intel2$HexLogClock)
通知的stringsAsFactors=FALSE
代碼,您可以指定read.csv
等進口方法,以確保您的字符數據不會轉換爲一個因素。
爲此,您可以使用您的數據:
intel2$HexLogClock <- as.character(intel2$HexLogClock)
我相信你必須爲傑夫的偵探工作+1和+1問題。 – 2012-04-20 00:22:23
@TylerRinker我相信這是正確的,並且已經這樣做了。 :-) – thelatemail 2012-04-20 00:28:10
唉,打我吧;) – jbaums 2012-04-20 00:30:45
我覺得我的誤解,如果是的話讓我知道,但你可以只提供十六進制值來col
爲:
barplot(1:3, axes=FALSE, col=c("#330000", "#FFFFCC", "660000"))
你會如何做到這一點與我試圖通過它的參數?我對R真的很陌生,並沒有完全理解col參數。文件不是很清楚。但是,是的,顏色以與x和y參數相同大小的矢量格式存儲。 – Richard 2012-04-20 00:10:43
我想象intel2$HexLogClock
存儲爲factor
。通過class(intel2$HexLogClock)
確認。在這種情況下,係數的每個級別都由一個整數表示(根據因子級別的第一個出現次序分配),因此您的第一個顏色將是黑色(1 =黑色),然後是紅色,然後是綠色,藍色,青色等等。
要糾正這一點,你需要intel2$HexLogClock
轉換爲字符向量,所以:
intel2$HexLogClock <- as.character(intel2$HexLogClock)
之後,你的預期你的命令應該工作。
或者:
symbols(year, logtrans, circles=size, inches=0.05,
bg=as.character(intel2$HexLogClock))
+1瞭解更多信息,這些信息將對未來的搜索者有用! – thelatemail 2012-04-20 00:35:36
你得到一個錯誤?或意外的結果? – 2012-04-20 00:08:20
顏色看起來是隨機的。我從#FF0000(紅色)到#FFFF00(黃色)的比例自己寫出顏色,出現的顏色遍佈圖表。使用熱托盤可能更容易,但我無法弄清楚如何根據第三個變量來選擇顏色。 – Richard 2012-04-20 00:14:06
聽起來好像根本沒有問題。您的顏色值可能會被排序,但您的年份和/或logtrans值可能根本不會。所以這些觀點可能真的是一團糟的顏色。 – 2012-04-20 00:19:22