考慮以下示例:
library(ggplot2)
library(RColorBrewer)
library(magrittr)
library(dplyr)
df <- data.frame(x = seq(0, 70, 0.5),
y = seq(0, 70, 0.5),
val = rnorm(141),
group =rep(1:3,47))
max_val_plot <- df$val %>% max() %>% round(0)
min_val_plot <--df$val %>% min() %>% round(0)
breaks_plot <-seq(min_val_plot,max_val_plot,0.1)
n <- breaks_plot %>% length()
getPalette <- colorRampPalette(brewer.pal(9, "RdBu"))
colors_plot <-getPalette(n)
labels_plot <- breaks_plot %>%
as.character()
labels_plot[!1:0]=' '
df %>%
ungroup() %>%
ggplot(aes(x=x,y=y,fill=val))
geom_raster()
facet_grid(~group)
theme_bw(base_size = 20)
scale_fill_stepsn(
name = "",
colours = colors_plot,
breaks = breaks_plot,
labels = labels_plot
)
盡管標簽和中斷的長度相等,但"Breaks and labels are different lengths" 由于存在多個組和繪圖代碼中的分面函式,會回傳錯誤。
我怎樣才能解決這個問題?
謝謝!
uj5u.com熱心網友回復:
解決您的問題的一種選擇是將函式傳遞給labels引數scale_fill_xxx以動態創建標簽,而不是將標簽作為向量提供。
library(ggplot2)
library(RColorBrewer)
library(magrittr)
library(dplyr)
set.seed(123)
df %>%
ungroup() %>%
ggplot(aes(x = x, y = y, fill = val))
geom_raster()
facet_grid(~group)
theme_bw(base_size = 20)
scale_fill_stepsn(
name = "",
colours = colors_plot,
breaks = breaks_plot,
labels = function(x) { x <- as.character(x); x[!1:0] <- " "; x}
)

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/437572.html
下一篇:使用ggarrange對齊圖表
