控制R散点图中点的大小?

Nic*_*ick 110 plot r scatter-plot

在R中,plot()函数采用pch控制图中点的外观的参数.我正在制作具有数万个点的散点图,并且更喜欢一个小的但不是太小的点.基本上,我觉得pch='.'太小了,但pch=19太胖了.有什么东西在中间或某种方式来缩小点以某种方式?

dou*_*oug 95

pch = 20返回一个大小介于 "." 之间的符号.和19.

这是一个填充符号(这可能是你想要的).

除此之外,即使是R中的基本图形系统,用户也可以对符号大小,颜色和形状进行细粒度控制.例如,

dfx = data.frame(ev1=1:10, ev2=sample(10:99, 10), ev3=10:1)

with(dfx, symbols(x=ev1, y=ev2, circles=ev3, inches=1/3,
                  ann=F, bg="steelblue2", fg=NULL))
Run Code Online (Sandbox Code Playgroud)

图示例

  • @saratis这将做你想要的:`符号(x = dfx $ ev1,y = dfx $ ev2,圆圈= sqrt(dfx $ ev3/pi),英寸= 1/3,ann = F,bg ="steelblue2" ,fg = NULL)` (5认同)
  • @Neodyme我想你可以使用`add = TRUE`并重复使用`符号`.... (4认同)

rcs*_*rcs 92

试试这个cex论点:

?par

  • cex
    一个数值,给出绘制文本和符号的数量相对于默认值应放大的数量.请注意,某些图形函数(如plot.default)具有此名称的参数,该参数将此图形参数相乘,而某些函数(如点)接受可循环使用的值向量.如果提供长度大于1的向量,则其他用途将仅采用第一个值.

  • 除非我没有其他选择,否则我认为我不会使用'cex'来控制符号大小.它只在某些时候起作用; 规则是当'cex'通过'par'设置时,它会影响绘图上(大多数)文本的大小,当在'plot'中设置时,'cex'仅影响符号大小.因此,如果您错误地应用该规则,那么不仅您的符号大小没有改变,而且您现在有多个影响文本大小的参数(cex.axis,cex.lab,cex.main和cex.sub - 都做同样的事情作为'cex'的工作,只是分段的).像这样的代码很难维护和扩展. (15认同)
  • 同意.通过`par`全局设置`cex`会改变你需要纠正的各种事物,包括数字边距.然而,在`plot`中设置`cex`似乎有效. (5认同)

aL3*_*3xa 21

正如rcs所说,cex将在基础图形包中完成工作.我认为你不愿意做你的图表,ggplot2但是如果你这样做,那就有一个size审美属性,你可以轻松控制(ggplot2有用户友好的函数参数:而不是输入cex(字符扩展),ggplot2你可以输入eg size = 2和你会得到2毫米点).

这是一个例子:

### base graphics ###
plot(mpg ~ hp, data = mtcars, pch = 16, cex = .9)

### ggplot2 ###
# with qplot()
qplot(mpg, hp, data = mtcars, size = I(2))
# or with ggplot() + geom_point()
ggplot(mtcars, aes(mpg, hp), size = 2) + geom_point()
# or another solution:
ggplot(mtcars, aes(mpg, hp)) + geom_point(size = 2)
Run Code Online (Sandbox Code Playgroud)

  • 而且,如果你真的在绘制成千上万的点,ggplot2有几种方法可以让它看起来不错 - 阿尔法调整,十六进制箱,等高线图等.查看ggplot2书的第72-77页,如果有的话在您的图书馆或您的图书馆可以电子访问Springer书籍(我认为大多数R书都在那里). (4认同)