![](/img/trans.png)
[英]Plotly: changing the colour scale (colour gradient) to a specific range of colour
[英]Changing scale colour to specific number in R
我已將我的數據上傳到 github: https://github.com/dschmidt42/Benguela_Chla_Danielle_Schmidt 。
設置我的數據:
chl_data <- "cmems_mod_glo_bgc_my_0.25_P1M-m_1673881119174.nc"
r <- rast(chl_data)
i <- seq(1, nlyr(r), 3)
r1 <- r[[i]]
vm <- tapp(r1, "months", var)
以下是結果圖:
titles <- c("January", "February",
"March", "April",
"May", "June",
"July", "August",
"September", "October",
"November", "December")
plot(vm, main = titles)
正如您所看到的,盡管它們具有不同的值,但比例都是相同的。 我怎樣才能改變它,使一張圖表上的 4.0 與另一張圖表上的 1.5 不同?
您可以嘗試手動設置中斷並將柵格類型設置為連續。
library(terra)
plot(vm,
main = titles,
type = "continuous",
breaks = seq(0,4,0.5))
確實應該有一種簡單的方法來指定您想要的,但是現在,一個快速的解決方案是
rr <- range(minmax(vm))
plot(vm, range=rr, main=month.name)
一個更復雜的解決方案是
m <- cbind(matrix(1:12, ncol=4, byrow=TRUE), 13)
layout(m, c(1,1,1,1,.3))
for (i in 1:12) {
plot(vm[[i]], legend=i==8, range=rr, mar=c(1,1,1,1), plg=list(cex=1.2))
text(20,-17,month.abb[i])
}
和更多:
m <- cbind(matrix(1:12, ncol=4, byrow=TRUE), 13)
layout(m, c(1, 1, 1, 1, .5))
par(mgp = c(2, .25, 0))
for (i in 1:12) {
plot(vm[[i]], legend=i==8, range=rr, mar=c(1.2,1.2,.2,0), plg=list(cex=1.2), axes=FALSE)
if (i %in% c(1,5,9)) axis(2, las=1, cex.axis=0.7)
if (i > 8) axis(1, cex.axis=0.7)
box()
text(19,-17,month.abb[i])
}
刪除空格(同時保留外軸),並使用日志獲得更多對比度
lvm <- log(vm)
lrr <- range(minmax(lvm))
m <- matrix(1:12, ncol=4, byrow=TRUE)
m <- rbind(m, 14)
m <- cbind(14, m, 13)
layout(m, c(0.2, 1, 1, 1, 1, .5), c(1,1,1,0.1))
par(mgp = c(2, .25, 0))
for (i in 1:12) {
plot(lvm[[i]], legend=i==8, range=lrr, mar=c(0,0,0,0), plg=list(cex=1.2), axes=FALSE)
if (i %in% c(1,5,9)) axis(2, las=1, cex.axis=0.7)
if (i > 8) axis(1, cex.axis=0.7)
box()
text(19,-17,month.abb[i])
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.