2014-09-26 57 views
0

假設我有變量a,b的數據幀,CR:如何使用對數標度中的函數符號()

我想使用symbols()函數繪製b針對a使得c != 0,和創建圓圈的面積與其成比例的圓圈c。對兩個軸使用對數刻度。

這是我做過什麼:

symbols(a[!c == 0], b[!c == 0], log = "xy", 
     inches=1/3, xlim=c(1e2, 1e11), ylim=c(1, 1e9), circles = c) 

而且我得到了:

Error in symbols(a[!c == 0], b[!c == : 
x/y/parameter length mismatch 

In addition: Warning messages: 
1: "log" is not a graphical parameter 

回答

0

我不知道爲什麼你的log = "xy"不工作,但你的x/y/parameter問題,是因爲你的參數circles = c比你的xy長:它包括c,即使當c是0.所以這應該工作:

symbols(a[!c == 0], b[!c == 0], log = "xy", 
     inches=1/3, xlim=c(1e2, 1e11), ylim=c(1, 1e9), circles = c[c != 0]) 

作爲一個變通獲取該日誌的尺度上,建立一個空的圖表第一,然後添加符號

plot(NA, NA, type = "n", xlim=c(1e2, 1e11), ylim=c(1, 1e9), log = "xy") 
symbols(x = a[!c == 0], y = b[!c == 0], 
     inches=1/3, circles = c[c != 0], add = T) 

另外一個說明:你說你的數據在一個data.frame ,但是你只使用你的調用中的變量。這使得它看起來像是你的數據框被編輯了attach。如果我是你,我會避免這種情況。它可以節省一些打字的時間,但是如果修改附加變量或原始數據框架,並且它們不再匹配,就會存在難以找到的錯誤。