2014-09-26 47 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。如果我是你,我会避免这种情况。它可以节省一些打字的时间,但是如果修改附加变量或原始数据框架,并且它们不再匹配,就会存在难以找到的错误。