如何在坐标中标记具有给定数字属性的所有点?

时间:2013-05-17 08:07:34

标签: r

我目前有这个R脚本:

library(ggplot2)

png("collatz-max-in-seq.png", width = 512, height = 800)

mydata = read.csv("../collatz-maxNumber.csv")

# Prepare data
p<-ggplot(mydata, aes(x=n, y=maximum))+ scale_y_continuous(formatter = "comma", limits = c(0, 100000))

p<-p + geom_point()
p<-p + opts(panel.background = theme_rect(fill='white', colour='white'))

# This will save the result in a pdf file called Rplots.pdf
p

dev.off()

生成collatz-maxNumber.csv

enter image description here

如何将所有具有2的幂的点标记为x坐标?

如果无法进行此类检查,我还可以制作另一个csv文件,其中包含应标记的所有x值。请注意,我仍然想要标记点,而不是x值本身。

1 个答案:

答案 0 :(得分:0)

这应该有效。您需要做的就是根据您的x值是否为2的幂来添加一个带有颜色美学值的列。在这个例子中,'n'是2的幂的所有行取值2和1否则:

mydata$col <- ( sqrt(mydata$n) %% 1  == 0 ) + 1

然后您可以将其绘制为

#  Plot
ggplot( mydata , aes( x = n ,  y = maximum , colour = factor(col) ) )+
  geom_point()+
  scale_y_continuous( formatter = "comma" , limits = c( 0, 100000 ) )

行动中的一个例子......

#  Sample data
mydata <- data.frame( n = rep(1:9,4) , y = sample( 20 , 36 , repl = TRUE ) )

#  Make the colour aesthetic
mydata$col <- ( sqrt(mydata$n) %% 1  == 0 ) + 1

#  Plot!
ggplot( mydata , aes( x = n ,  y = y , colour = factor(col) ) )+
geom_point( )

enter image description here