【问题标题】:Show half of the values on x-axis with ggplot and scale_x_discrete使用 ggplot 和 scale_x_discrete 在 x 轴上显示一半的值
【发布时间】:2013-12-30 10:14:55
【问题描述】:

我有一个数据框:

dput(df):

structure(list(Date = c("2008-11-28", "2008-12-31", "2009-01-30", 
"2009-02-27", "2009-03-31", "2009-04-30", "2009-05-29", "2009-06-30", 
"2009-07-31", "2009-08-31", "2009-09-30", "2009-10-30", "2009-11-30", 
"2009-12-31", "2010-01-29", "2010-02-26", "2010-03-31", "2010-04-30", 
"2010-05-31", "2010-06-30", "2010-07-30", "2010-08-31", "2010-09-30", 
"2010-10-29", "2010-11-30", "2010-12-31", "2011-01-31", "2011-02-28", 
"2011-03-31", "2011-04-29", "2011-05-31", "2011-06-30", "2011-07-29", 
"2011-08-31", "2011-09-30", "2011-10-31", "2011-11-30", "2011-12-30", 
"2012-01-31", "2012-02-29", "2012-03-30", "2012-04-30", "2012-05-31", 
"2012-06-29", "2012-07-31", "2012-08-31", "2012-09-28", "2012-10-31", 
"2012-11-30", "2012-12-31", "2013-01-31", "2013-02-28", "2013-03-29", 
"2013-04-30", "2013-05-31", "2013-06-28", "2013-07-31", "2013-08-30", 
"2013-09-30", "2013-10-31", "2013-11-29", "2008-11-28", "2008-12-31", 
"2009-01-30", "2009-02-27", "2009-03-31", "2009-04-30", "2009-05-29", 
"2009-06-30", "2009-07-31", "2009-08-31", "2009-09-30", "2009-10-30", 
"2009-11-30", "2009-12-31", "2010-01-29", "2010-02-26", "2010-03-31", 
"2010-04-30", "2010-05-31", "2010-06-30", "2010-07-30", "2010-08-31", 
"2010-09-30", "2010-10-29", "2010-11-30", "2010-12-31", "2011-01-31", 
"2011-02-28", "2011-03-31", "2011-04-29", "2011-05-31", "2011-06-30", 
"2011-07-29", "2011-08-31", "2011-09-30", "2011-10-31", "2011-11-30", 
"2011-12-30", "2012-01-31", "2012-02-29", "2012-03-30", "2012-04-30", 
"2012-05-31", "2012-06-29", "2012-07-31", "2012-08-31", "2012-09-28", 
"2012-10-31", "2012-11-30", "2012-12-31", "2013-01-31", "2013-02-28", 
"2013-03-29", "2013-04-30", "2013-05-31", "2013-06-28", "2013-07-31", 
"2013-08-30", "2013-09-30", "2013-10-31", "2013-11-29"), Variables = c("Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS HEDGNAV Index", "Korrelation Fond VS HEDGNAV Index", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX", "Korrelation Fond VS OMXN40 INDEX", 
"Korrelation Fond VS OMXN40 INDEX"), Value = c(0.543281082364437, 
0.527712775086864, 0.408808506706841, 0.429295911936136, 0.413869805084106, 
0.420679623586744, 0.486699140272165, 0.489646951704357, 0.482167209693269, 
0.476479729549409, 0.470318758286474, 0.445944951970354, 0.443399322259001, 
0.450016066763416, 0.426480550286595, 0.423371569969272, 0.45695040799057, 
0.431834238396871, 0.467511327603749, 0.468313995662446, 0.497800239085846, 
0.483892272485929, 0.461639835904741, 0.510817807699252, 0.607556423633874, 
0.635324016630525, 0.677123446245495, 0.64944374391215, 0.699596537117267, 
0.719111914210672, 0.646823640421409, 0.704957947272873, 0.711475445475265, 
0.586745307486821, 0.470189153059282, 0.496157837064293, 0.42998988517485, 
0.410086396037883, 0.434712079537519, 0.451209820436262, 0.439204849230259, 
0.458968925612488, 0.413432511226888, 0.352720907440874, 0.345869742666471, 
0.334881763959464, 0.364193270299568, 0.349099808200996, 0.344120170458358, 
0.321312279605764, 0.36780909986839, 0.45673262559758, 0.441745479560392, 
0.472657754486699, 0.460230404194416, 0.439767509233639, 0.451917786933249, 
0.502203230669925, 0.506491068871301, 0.326404602073815, 0.370217685029334, 
0.718957249305725, 0.692112042544696, 0.653190037272512, 0.600562794023062, 
0.577038569091474, 0.732404727204883, 0.701073092028334, 0.70024367927988, 
0.72760615710821, 0.760476468119078, 0.76494346961595, 0.74516226659605, 
0.739882810581542, 0.747631786072444, 0.726091015017154, 0.701735263628067, 
0.702742836045239, 0.710111045287843, 0.709534887923479, 0.660085062138124, 
0.68714771636425, 0.692372537364393, 0.653723068520449, 0.60219048444321, 
0.611238847460719, 0.615532490318692, 0.629099995821728, 0.696641041953563, 
0.699678945834638, 0.586283865406429, 0.624290876602801, 0.670695507419494, 
0.659774721518298, 0.71774709033755, 0.744569380783438, 0.816379470202153, 
0.837499193100422, 0.836198005977033, 0.84080909869627, 0.855061699261408, 
0.853368178821269, 0.851320045495211, 0.851777606811136, 0.814170256202011, 
0.815730122501554, 0.816104542127919, 0.791916561887601, 0.789829046533777, 
0.798421955468353, 0.768092583652463, 0.775993885935737, 0.782511954882627, 
0.792300623324247, 0.788792623730908, 0.777178875667974, 0.77530100406966, 
0.784668152948575, 0.723029746336548, 0.694308712557347, 0.657753481204441, 
0.656521122619321)), .Names = c("Date", "Variables", "Value"), row.names = c(NA, 
-122L), class = "data.frame")

然后我使用ggplot:

 CorrelationsBenchPlot<-ggplot(corres24mDfMelt, aes(x=Date,y=Value,group=Variables))+
  geom_line(aes(linetype=Variables,colour=Variables), size=1)+
  scale_y_continuous(breaks=seq(0.3,0.9,0.1),limits=c(0.3,0.9))+
  scale_x_discrete(breaks = corres24mDfMelt$Date[c(TRUE,FALSE)])+
  scale_colour_manual(values=c("black", "red", "green"))+theme_gdocs()+
  theme(axis.text.x  = element_text(angle=-90, hjust=0.5, size=8,colour="black",face="bold"),
        axis.text.y  = element_text(size=8,colour="black",face="bold"),
        legend.text = element_text(colour="black", size = 12, face = "bold"),
        legend.background = element_rect(fill="gray90", size=.5, linetype="dotted"), 
        plot.title = element_text(size = rel(1.6),face = "bold"),
        axis.title.y = element_blank(),
        axis.title.x=element_blank(),
        legend.title=element_blank(),
        legend.position=c(0.3, 0.11), 
        legend.position="none",
        legend.box="vertical")+
  labs(title = "2 Year Rolling Correlation\n")

所以我想使用scale_x_discrete(breaks = corres24mDfMelt$Date[c(TRUE,FALSE)]) 在 x 轴上显示第二个字符值,但它不起作用,我得到了所有 x 轴值。

我做错了什么?

最好的问候!

【问题讨论】:

    标签: r ggplot2 xscale


    【解决方案1】:

    corres24mDfMelt$Date 中的值不是唯一的,而是重复的(每个日期有两个值)。因此,corres24mDfMelt$Date[c(TRUE,FALSE)] 命令仍然返回所有可能的值。

    您必须使用 unique 日期作为基础:

    scale_x_discrete(breaks = unique(corres24mDfMelt$Date)[c(TRUE,FALSE)])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-12
      • 2018-07-10
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      • 2023-01-09
      相关资源
      最近更新 更多