我想制作一个热图,其中颜色托盘为绿色到红色,但0的值为白色.我开始使用基于因子的不同高填充颜色的geom_tile热图,以及其他SO,但是不能完全得到我需要的东西.例如,使用以下数据库:
df <- data.frame(expand.grid(1:10,1:10))
df$z <- sample(0:10, nrow(df), replace=T)
Run Code Online (Sandbox Code Playgroud)
我可以创建这个情节:
ggplot(df,aes(x = Var1,y = Var2,fill = z)) +
geom_tile() +
scale_fill_gradient(low = "green", high = "red")
Run Code Online (Sandbox Code Playgroud)
ggplot(df,aes(x = Var1,y = Var2,fill = z)) +
geom_tile() +
scale_fill_gradient(low="green", high="red", limits=c(1, 10))
Run Code Online (Sandbox Code Playgroud)
而白色为0,但我失去了绿色到红色:
ggplot(df,aes(x = Var1,y = Var2,fill = z)) +
geom_tile() +
scale_fill_gradient(low = "white", high = "red")
Run Code Online (Sandbox Code Playgroud)
而且我根本不能使用brewer scale(尽管我认为我错过了一些基于错误的简单).
ggplot(df,aes(x = Var1,y = Var2,fill = z)) +
geom_tile() +
scale_fill_brewer("Greens")
Run Code Online (Sandbox Code Playgroud)
我应该用NA替换0吗?任何帮助,将不胜感激.
我还在学习R中的数据管理.我知道我非常接近,但无法获得精确的语法.我通过使用R中的条件 和 条件计数以及在R中分组来查看 计数变量 但是不能完全转换为我的工作.我试图得到一个由ST等于0的dist.km计数.最终我想要添加具有不同距离范围的计数的列,但是应该能够在得到它之后得到它.最终表应该具有所有状态并且计数为0.这是一个20行的样本.
structure(list(ST = structure(c(12L, 15L, 13L, 10L, 15L, 16L,
11L, 12L, 8L, 14L, 10L, 14L, 6L, 11L, 5L, 5L, 15L, 1L, 6L, 4L
), .Label = c("CT", "DE", "FL", "GA", "MA", "MD", "ME", "NC",
"NH", "NJ", "NY", "PA", "RI", "SC", "VA", "VT", "WV"), class = "factor"),
Rfips = c(42107L, 51760L, 44001L, 34001L, 51061L, 50023L,
36029L, 42101L, 37019L, 45079L, 34029L, 45055L, 24003L, 36027L,
25009L, 25009L, 51760L, 9003L, 24027L, 1111L), zip = c(17972L,
23226L, 2806L, 8330L, …Run Code Online (Sandbox Code Playgroud) 我正在建立一个前面提到的问题,geom_tile单色为0 ......它从以下代码开始,提供的答案代码创建了图:
df <- data.frame(expand.grid(1:10,1:10))
df$z <- sample(0:10, nrow(df), replace=T)
# provided answer from SO
ggplot(df,aes(x = Var1,y = Var2, fill = z)) +
geom_tile() +
scale_fill_gradientn(colours = c("white", "green", "red"), values = c(0,0.1,1))
Run Code Online (Sandbox Code Playgroud)
我想将图例移到底部,图例标题位于顶部并居中.代码和结果如下:
ggplot(df,aes(x = Var1,y = Var2, fill = z)) +
geom_tile() +
scale_fill_gradientn(colours = c("white", "green", "red"), values = c(0,0.1,1)) +
theme(legend.position="bottom") +
guides(fill = guide_legend(title.position="top",label.position = "bottom"))
Run Code Online (Sandbox Code Playgroud)
重新定位图例工作,标题位于"顶部"但我丢失了连续刻度并且无法使标题居中.有关改变传奇标题位置的SO的一些信息性问答,但似乎没有一个问题是将连续的传奇改为谨慎.
我正在尝试使用R中的聚合来汇总一些数据,同时使用以下数据计算其他列的值
新数据
Year HNo County ST Month Day DuckBag GooseBag
2012 264120547 LA ND 10 13 6 0
2008 264080047 EDDY ND 9 27 4 1
2013 26430119 ROLETTE ND 10 20 3 0
2006 264060447 BURKE ND 10 25 5 0
2006 264061113 BENSON ND 10 2 3 1
2012 564120139 OLIVER ND 12 15 0 3
2013 26430294 TOWNER ND 10 10 2 0
2007 564070298 LOGAN ND 9 29 0 0
2007 564070869 SHERIDAN ND 10 21 …Run Code Online (Sandbox Code Playgroud)