0

我目前有这个 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()

使用collat​​z-maxNumber.csv产生:

在此处输入图像描述

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

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

4

1 回答 1

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

在此处输入图像描述

于 2013-05-17T08:54:58.923 回答