Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ggplot中的条形图正在删除第一个和最后一个值_R_Ggplot2_Bar Chart - Fatal编程技术网

R ggplot中的条形图正在删除第一个和最后一个值

R ggplot中的条形图正在删除第一个和最后一个值,r,ggplot2,bar-chart,R,Ggplot2,Bar Chart,我想创建一个非常简单的条形图。 这里是我想要绘制的变量和数据(请注意,虽然它是一个时间序列,但x变量不是一个日期,而是一个有序因子): 这是ggplot中非常简单的代码,我用它来绘制这些值: ggplot(data, aes(x= Wave, y=value))+ geom_bar( stat="identity")+ theme(axis.text.x = element_text(angle=90, vjust = 0.5)) 除了不绘制序列的第一个和最后一个值之外,

我想创建一个非常简单的条形图。 这里是我想要绘制的变量和数据(请注意,虽然它是一个时间序列,但x变量不是一个日期,而是一个有序因子):

这是ggplot中非常简单的代码,我用它来绘制这些值:

ggplot(data, aes(x= Wave, y=value))+ geom_bar(  stat="identity")+ theme(axis.text.x = element_text(angle=90, vjust = 0.5))
除了不绘制序列的第一个和最后一个值之外,一切正常(这是一个非常基本的绘图)

我从过去关于类似问题的帖子中了解到,我需要扩展x轴,事实上,这段代码解决了这个问题:

ggplot(Graphs, aes(x= Wave, y=`More optimistic`))+  geom_bar(  stat="identity")+ theme(axis.text.x = element_text(angle=90, vjust = 0.5))+   scale_x_discrete(limits= c("Spring 2015", "Autumn 2015", "Spring 2016", "Autumn 2016", "Spring 2017", "Autumn 2017", "Spring 2018", "Autumn 2018", "Spring 2019", "Autumn 2019", "Spring 2020", "Autumn 2020"))
然而,这是相当繁琐的,需要大量的写作

任何人都知道:

  • 为什么我有这个问题(这个系列不是很长!)
  • 有没有更优雅的方法来解决这个问题

  • 非常感谢

    您可以尝试用
    比例离散(限制=排序(波浪))
    替换
    比例离散(限制=排序(波浪))


    除非您使用
    dput()

    提供数据,否则我无法进行测试,因为几乎每个问题都包含标签并询问标签的顺序,这些问题可以通过以下两种方式之一解决:(1)转换为数字(当它是字符串中类似数字的东西时,应该是数字)或(2)转换为
    因子
    ,并显式控制其
    级别=
    。如果
    Wave
    变量中有个月,则我们可以将其作为
    日期
    处理(如上面的1类数字)。但是,既然没有,您可以显式地控制向量中的顺序,那么我们应该使用选项2。因为您知道候选季节(
    “春季”
    “秋季”
    之前,以及
    “2018”
    “2019”
    之前),所以我们可以通过编程强制执行顺序

    如果您的数字(1)每个
    波有一个以上的观测值,可能是堆叠条形图,或者(2)它们不是天生有序的,那么这里有一种技术可以确保它们的顺序正确。首先,我将故意对它们进行无序排列,以证明该方法(显然,您的解决方案中不需要此步骤)

    set.seed(2021年)
    
    数据因为它是一个因子,所以x轴按因子值排序,而不是按外观顺序或字母顺序。当您向
    scale\u x\u discrete
    提供限制向量时,您实际上是在手动覆盖按因子级别排序。这与扩展x轴无关。您可以尝试重新设置e
    scale\u x\u离散(limits=c(“2015年春季”、“2015年秋季”和[…])
    带有
    scale\u x\u离散(limits=sort(Wave))
    。除非您使用
    dput()提供数据,否则我无法进行测试
    。你好,马里奥,谢谢你的建议。但是,我不完全理解你的答案,因为问题不是我把变量按错误的顺序排序,而是我没有得到两个数据点(“本系列开头的2015年春季”和结尾的2020年秋季)在图表中绘制。作为后续,重新排序因子变量确实有效!非常感谢。我仍然想了解链接“排序”的原因是什么在变量中,两个值根本没有被绘制……您提供的绘图上没有丢失任何数据,只是与您认为提供的顺序不同。
    ggplot(Graphs, aes(x= Wave, y=`More optimistic`))+  geom_bar(  stat="identity")+ theme(axis.text.x = element_text(angle=90, vjust = 0.5))+   scale_x_discrete(limits= c("Spring 2015", "Autumn 2015", "Spring 2016", "Autumn 2016", "Spring 2017", "Autumn 2017", "Spring 2018", "Autumn 2018", "Spring 2019", "Autumn 2019", "Spring 2020", "Autumn 2020"))