简体   繁体   English

如何使用 scale_x_discrete 更改 x 轴标签

[英]How to change the x axis labels using scale_x_discrete

Using the following script:使用以下脚本:

  df <- read.csv("/covpl.csv")
  m <- melt(df)
  Time <- m$variable
  coverage_plot <- ggplot(data=m, aes(x=Time, y=value, group=config, color=config)) + 
    geom_line(size=1) + 
    geom_point(aes(shape=config, colour = config), show.legend = T, size=3) +
    scale_x_discrete(labels = seq(1, 60.0, by=1)) +
    theme(legend.position="bottom", axis.text.x = element_text(angle = 90),text = element_text(size=13),legend.title=element_blank())+
    labs(x = "Time (minutes)", y = "Coverage") +
    guides(shape=guide_legend(override.aes=list(size=3, linetype=0)))

I get the following plot:我得到以下 plot:

在此处输入图像描述

In the x-axis, I would like the labels to be from 1 to 30 (in this case 60 should be shown as 30) because the data represent a value that is stored after half a minute (this is why we have 60 data points) but I want to plot them as 30 minutes.在 x 轴上,我希望标签从 1 到 30(在这种情况下,60 应该显示为 30),因为数据表示半分钟后存储的值(这就是我们有 60 个数据点的原因) 但我想把它们 plot 当作 30 分钟。

To do that, I changed scale_x_discrete(labels = seq(1, 30.0, by=1)) but this gives the following:为此,我更改了scale_x_discrete(labels = seq(1, 30.0, by=1))但这给出了以下内容:

在此处输入图像描述

Do you have any idea how to fix this?你知道如何解决这个问题吗?

Reproducible data:可重现的数据:

structure(list(config = structure(1:5, .Label = c("f1", "f2", 
"f3", "f4", "f5"), class = "factor"), class = structure(c(1L, 
1L, 1L, 1L, 1L), .Label = "com.google.common.base.Joiner", class = "factor"), 
    CoverageTimeline_T1 = c(0.85390153, 0.841557035, 0.8381143561, 
    0.8404624807, 0.8448297462), CoverageTimeline_T2 = c(0.9431633586, 
    0.9192875446, 0.9010343959, 0.9126220049, 0.938583703), CoverageTimeline_T3 = c(0.9881426292, 
    0.9793648538, 0.9406397492, 0.9507933561, 0.9762333662), 
    CoverageTimeline_T4 = c(0.9937107313, 0.9933404876, 0.9632557533, 
    0.9706779854, 0.9946485039), CoverageTimeline_T5 = c(0.9966666667, 
    1, 0.9799043011, 0.9830096664, 0.9966666667), CoverageTimeline_T6 = c(0.9966666667, 
    1, 0.9930106526, 0.9866666667, 0.9966666667), CoverageTimeline_T7 = c(0.9966666667, 
    1, 1, 0.991560876, 0.9966666667), CoverageTimeline_T8 = c(0.9966666667, 
    1, 1, 0.9966666667, 0.9966666667), CoverageTimeline_T9 = c(0.9966666667, 
    1, 1, 0.9966666667, 0.9966666667), CoverageTimeline_T10 = c(0.9966666667, 
    1, 1, 0.9966666667, 0.9966666667), CoverageTimeline_T11 = c(0.9966666667, 
    1, 1, 0.9966666667, 0.9966666667), CoverageTimeline_T12 = c(0.9966666667, 
    1, 1, 0.9966666667, 0.9966666667), CoverageTimeline_T13 = c(0.9966666667, 
    1, 1, 0.9966666667, 0.9966666667), CoverageTimeline_T14 = c(0.9966666667, 
    1, 1, 0.9966666667, 0.9966666667), CoverageTimeline_T15 = c(0.9966666667, 
    1, 1, 0.9966666667, 0.9966666667), CoverageTimeline_T16 = c(0.9966666667, 
    1, 1, 0.9966666667, 0.9966666667), CoverageTimeline_T17 = c(0.9966666667, 
    1, 1, 0.9966666667, 0.9966666667), CoverageTimeline_T18 = c(0.9966666667, 
    1, 1, 0.9966666667, 0.9966666667), CoverageTimeline_T19 = c(0.9966666667, 
    1, 1, 0.9966666667, 0.9966666667), CoverageTimeline_T20 = c(0.9966666667, 
    1, 1, 0.9966666667, 0.9989709749), CoverageTimeline_T21 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T22 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T23 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T24 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T25 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T26 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T27 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T28 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T29 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T30 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T31 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T32 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T33 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T34 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T35 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T36 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T37 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T38 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T39 = c(0.9966666667, 
    1, 1, 0.9966666667, 1), CoverageTimeline_T40 = c(0.9966666667, 
    1, 1, 1, 1), CoverageTimeline_T41 = c(0.9966666667, 1, 1, 
    1, 1), CoverageTimeline_T42 = c(0.9966666667, 1, 1, 1, 1), 
    CoverageTimeline_T43 = c(0.9966666667, 1, 1, 1, 1), CoverageTimeline_T44 = c(0.9966666667, 
    1, 1, 1, 1), CoverageTimeline_T45 = c(0.9966666667, 1, 1, 
    1, 1), CoverageTimeline_T46 = c(0.9966666667, 1, 1, 1, 1), 
    CoverageTimeline_T47 = c(0.9966666667, 1, 1, 1, 1), CoverageTimeline_T48 = c(0.9966666667, 
    1, 1, 1, 1), CoverageTimeline_T49 = c(0.9966666667, 1, 1, 
    1, 1), CoverageTimeline_T50 = c(0.9966666667, 1, 1, 1, 1), 
    CoverageTimeline_T51 = c(0.9966666667, 1, 1, 1, 1), CoverageTimeline_T52 = c(0.9966666667, 
    1, 1, 1, 1), CoverageTimeline_T53 = c(0.9966666667, 1, 1, 
    1, 1), CoverageTimeline_T54 = c(0.9966666667, 1, 1, 1, 1), 
    CoverageTimeline_T55 = c(0.9966666667, 1, 1, 1, 1), CoverageTimeline_T56 = c(0.9966666667, 
    1, 1, 1, 1), CoverageTimeline_T57 = c(0.9966666667, 1, 1, 
    1, 1), CoverageTimeline_T58 = c(0.9966666667, 1, 1, 1, 1), 
    CoverageTimeline_T59 = c(0.9966666667, 1, 1, 1, 1), CoverageTimeline_T60 = c(0.9966666667, 
    1, 1, 1, 1)), class = "data.frame", row.names = c(NA, -5L
))

Edit: It would be better if you define Time as a numeric vector based on the factor you have ( m$variable ).编辑:如果您根据您拥有的因子( m$variable )将Time定义为数字向量会更好。 Using a simple regular expression we can pull out the number and divide by 2:使用简单的正则表达式,我们可以取出数字并除以 2:

 df <- read.csv("/covpl.csv")
  m <- melt(df)
  Time <- as.numeric(gsub('.*_T', '', m$variable)) / 2
  coverage_plot <- ggplot(data=m, aes(x=Time, y=value, group=config, color=config)) + 
    geom_line(size=1) + 
    geom_point(aes(shape=config, colour = config), show.legend = T, size=3) +
    theme(legend.position="bottom", axis.text.x = element_text(angle = 90),text = element_text(size=13),legend.title=element_blank())+
    labs(x = "Time (minutes)", y = "Coverage") +
    guides(shape=guide_legend(override.aes=list(size=3, linetype=0)))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM