【问题标题】:ggplot2 displaying unlabeled tick marks between labeled tick marksggplot2在标记的刻度线之间显示未标记的刻度线
【发布时间】:2017-09-25 18:51:52
【问题描述】:

我在直方图上显示小刻度线时遇到问题。我尝试过绘制未标记的主要刻度线的想法,但刻度线不会显示。我的代码非常繁琐,可能有一些多余的行。任何帮助,将不胜感激。

ggplot(data=Shrimp1, aes(Shrimp1$Carapace.Length))+
geom_histogram(breaks=seq(3.5, 25, by=0.1),
             col="black",
             fill="gray", 
             alpha=1)+ 

 labs(title="Total Female Carapace Length")+
 labs(x="Carapace Length (mm)", y="# of Shrimp")+
  xlim(c(3.5, 25))+
  theme_bw()+
scale_y_continuous(expand = c(0,0),
                     limits = c(0,200))+
scale_x_continuous(breaks=seq(2.5,25,2.5))+

theme(axis.text.x=element_text(size=30,angle=45,hjust=1))+
  theme(plot.title=element_text(size=30, hjust=0.5))+
  theme(axis.text=element_text(size=30, color = "black"), 
        axis.title=element_text(size=30,face="bold"))+
  theme(panel.grid.major=element_line(colour="white"), 
        panel.grid.minor = element_line(colour = "white"))+
  theme(panel.border=element_blank())+
  theme(axis.ticks.x = (element_line(size=2)), 
        axis.ticks.y=(element_line(size=2)))+
  theme(axis.ticks.length=unit(.55, "cm"))+
  theme(panel.border=element_blank(), axis.line.x=element_line(colour="black"),
        axis.line.y=element_line(colour="black"))

存在主要滴答声,但我需要它们之间的次要滴答声,间隔为 0.1

【问题讨论】:

标签: r ggplot2 histogram


【解决方案1】:

我认为您不能在次要中断中添加刻度,但是您可以通过在scale_x_continuous 中明确标记它们来获得未标记的主要刻度。您可以使用带有 mod (%%) 的布尔索引将“次要”刻度标签设置为空白。

同样,如果您希望“次要”刻度具有不同的大小,您可以在 theme 中明确设置刻度大小。

set.seed(5)
df <- data.frame(x = rnorm(500, mean = 12.5, sd = 3))

breaks <- seq(2.5, 25, .1)

labels <- as.character(breaks)
labels[!(breaks %% 2.5 == 0)] <- ''
tick.sizes <- rep(.5, length(breaks))
tick.sizes[(breaks %% 2.5 == 0)] <- 1

df %>% 
  ggplot(aes(x)) +
  geom_histogram(binwidth = .1, color = 'black', fill = 'gray35') +
  scale_x_continuous(breaks = breaks, labels = labels, limits = c(2.5,25)) +
  theme_bw() +
  theme(panel.grid = element_blank(), 
        axis.ticks.x = element_line(size = tick.sizes))

您也可能从我的代码中注意到,您只需调用一次theme() 并将所有主题修改放入该调用中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 2018-07-19
    相关资源
    最近更新 更多