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

控制R散点图中点的大小?,r,plot,scatter-plot,R,Plot,Scatter Plot,在R中,plot()函数采用一个pch参数来控制点在绘图中的外观。我用数万个点做散点图,我喜欢一个小点,但不要太小。基本上,我发现pch='.太小了,但是pch=19太胖了。是否有某种东西在某种程度上或某种程度上缩小了点? < P> > CEX < /代码>参数: ?par cex 一个数值,给出 打印文本和文本的数量 符号应该相对放大 默认情况下。请注意,有些 图形功能,例如 plot.default具有此参数 将此图形集相乘的名称 参数,以及一些函数,如 点接受值的向量 这些都是可回收的

在R中,
plot()
函数采用一个
pch
参数来控制点在绘图中的外观。我用数万个点做散点图,我喜欢一个小点,但不要太小。基本上,我发现
pch='.
太小了,但是
pch=19
太胖了。是否有某种东西在某种程度上或某种程度上缩小了点?

< P> > <代码> CEX < /代码>参数:

?par

  • cex

    一个数值,给出 打印文本和文本的数量 符号应该相对放大 默认情况下。请注意,有些 图形功能,例如 plot.default具有此参数 将此图形集相乘的名称 参数,以及一些函数,如 点接受值的向量 这些都是可回收的。其他用途将 如果是向量,只取第一个值 长度大于1的是 供应

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))
正如rcs所述,
cex
将在基本图形包中完成这项工作。我认为您不愿意在
ggplot2
中绘制图形,但如果您愿意,则有一个
size
美学属性,您可以轻松控制(
ggplot2
具有用户友好的函数参数:而不是键入
cex
(字符扩展),在
ggplot2
中,您可以键入,例如
size=2
,您将得到2mm点)

下面是一个例子:

### 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)

而且,如果你真的在绘制数万个点,ggplot2有几种替代方法可以让它看起来很漂亮——阿尔法调整、六角箱、等高线图等等。如果你的图书馆里有ggplot2的书,或者你的图书馆有电子版的Springer图书(我想大部分R图书都在里面),请查看ggplot2的第72-77页是的。。。我特别在散点图中使用了
alpha
,以避免过度绘制。@aL3xa您可以在基本图形包中使用alpha。只需在绘图选项中添加例如
col=rgb(0,0,0,0.6)
。除非我没有其他选项,否则我不会使用“cex”来控制符号大小。它只在某些时候起作用;规则是,当通过“par”设置“cex”时,它会影响绘图上(大多数)文本的大小,当设置在“绘图”内时,“cex”只影响符号大小。因此,如果您错误地应用了该规则,那么不仅您的符号大小没有改变,而且您现在有多个影响文本大小的参数(cex.axis、cex.lab、cex.main和cex.sub——所有这些参数都与“cex”做相同的工作,只是分段)。这样的代码很难维护和扩展。同意。通过
par
全局设置
cex
,可以更改您必须更正的所有内容,包括图形边距。然而,在
plot
中设置
cex
似乎是可行的。doug的评论所支持的上述建议并不一定是错误的,但它明显夸大了在绘图时使用
cex
参数的任何潜在问题。在很多情况下,它既有用又是最佳选项。
lwd
控制pch的线宽,例如
绘图(1:5,pch=1:5,col=1:5,lwd=1:5)
。谢谢你,我喜欢这幅图,但我希望半径等于该点上的观察次数,你能告诉我怎么做吗?
pi*R^2
(曲面)应该与观察次数成比例。@saratis这将满足你的要求:
符号(x=dfx$ev1,y=dfx$ev2,圆=sqrt(dfx$ev3/pi),inches=1/3,ann=F,bg=“steelblue2”,fg=NULL)
我怎么能用它在同一个图形上绘制多个系列?i、 e.“点(x=dfx2$ev1,y=dfx2$ev2,圆圈=dfx2$ev3,…)”不起作用。如果您想知道“一英寸是什么?”而不是让点变小,是否有一种方法可以只绘制100个随机数据点比1000个更容易看到?对于许多小点,使用alpha(透明度)可以使散点图比仅使用较少的点来绘制更具信息性。我建议不要使用
pch='。
,它会偏离中心。来源:我曾经使用过
pch='.
often@geneorama你的意思是使用
·
而不是
?@nanaki或多或少,但奇怪的是,当我在R中使用你的符号时,它显示为小方框。下面的答案很好地解释了正确的方法。