Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将比例更改为离散值_R_Ggplot2 - Fatal编程技术网

R 将比例更改为离散值

R 将比例更改为离散值,r,ggplot2,R,Ggplot2,我用连续比例尺为不同年份绘制了一系列11张地图。通过从一个贴图移动到下一个贴图,可以看到值随时间的变化。然而,我使用了一个连续的刻度,这是令人困惑的,因为某种颜色,例如红色,表示一年中与另一年中的值非常不同。因此,我想用一个具有固定值范围的离散标度来代替连续标度 在这里,您可以找到11张地图中的一张: 以下是我将刻度转换为离散刻度的尝试,但是,这不起作用: dat <- read.csv("alexis.csv") library(reshape) dat <- melt(dat

我用连续比例尺为不同年份绘制了一系列11张地图。通过从一个贴图移动到下一个贴图,可以看到值随时间的变化。然而,我使用了一个连续的刻度,这是令人困惑的,因为某种颜色,例如红色,表示一年中与另一年中的值非常不同。因此,我想用一个具有固定值范围的离散标度来代替连续标度

在这里,您可以找到11张地图中的一张:

以下是我将刻度转换为离散刻度的尝试,但是,这不起作用:

dat <- read.csv("alexis.csv")

library(reshape)

dat <- melt(dat, id=c("Port", "latitude", "longitude"))

library(ggplot2)
library(cshapes)

world <- cshp(date=as.Date("2008-1-1"))
world.points <- fortify(world)

names <- unique(dat$variable)
year <- c("1843", "1840-1845", "1869", "1866-1870", "1894", "1900 Dec", 
         "1912", "1922", "1932", "1940", "1950") 

dat$value <- dat$value*100
dat$Pdiff <- "<20%"
dat$Pdiff[dat$value<50 & dat$value>=20] <- "<50%"
dat$Pdiff[dat$value<100 & dat$value>=50] <- "<100%"
dat$Pdiff[dat$value<150 & dat$value>=100] <- "<150%"
dat$Pdiff[dat$value<200 & dat$value>=150] <- "<200%"
dat$Pdiff[dat$value<250 & dat$value>=200] <- "<250%"
dat$Pdiff[dat$value<300 & dat$value>=250] <- "<300%"
dat$Pdiff[dat$value>=300] <- "<=300%"
dat$Pdiff <- factor(dat$Pdiff)

reorder(X = dat$Pdiff, dat$Pdiff, new.order=c("<20%","<50%","<100%","<150%",
        "<200%","<250%","<300%", "<=300%"))

years <- c("1843", "1840-1845", "1869", "1866-1870", "1894", "1900",
          "1912", "1922", "1932", "1940", "1950")

for(i in 1:length(names)){
 temp = na.omit(dat[dat$variable==names[i],])

 p1 <- ggplot(world.points, aes(long, lat, group=group)) +  
   geom_polygon(fill="white") +
   geom_point(data=temp, aes(x=longitude, y=latitude, group=value, col=value)) +
   coord_equal() + 
   scale_x_continuous(breaks = c(0, 0.2, 0.5, 1, 1.5, 2, 2.5, 3, 7), labels=NULL) +   
   scale_y_continuous(labels=NULL) +   
   labs(x = NULL, y = NULL)
   scale_fill_manual(breaks = c("0", "0.2", "0.5", "1", "1.5", "2", "2.5", "3", "7"),
   values = c("yellow", "orange", "red", "green", "lightblue", "darkblue", "brown", "black")) +   
   theme(axis.ticks = element_blank(), axis.text.y = element_blank(),
         legend.position="bottom") +
 name = paste(paste("prch", i, sep=""), ".pdf", sep="")
 ggsave(name, p1, width=8, height=4)
}

我怀疑这可能不是唯一的问题!非常感谢您的帮助。

labs()
之后缺少
+
?谢谢,这会导致以下错误消息:ggplot(world.points,aes(long,lat,group=group))+geom_polygon(fill=“white”)+:找不到函数“+如果是,那么您运行的代码不在您的问题中。在
name=
出现错误之前,您是否费心寻找“+”的实例。
Error in scale_fill_manual(breaks = c("0", "0.2", "0.5", "1", "1.5", "2",  : 
  target of assignment expands to non-language object