ggplot意外在y轴上绘制图形

时间:2019-09-06 17:43:04

标签: r ggplot2

我卡住了ggplot的值在y轴上的图形,看不到问题。

代表: 这是我的数据帧的头部输出,然后是dput和代码。

> head(my_df)
        Date        Asset Value  pos_neg   qtr_date    yr_date
1 2018-09-01 real_gdp_yoy   3.2 positive 2018-07-01 2018-01-01
2 2018-09-02 real_gdp_yoy   3.2 positive 2018-07-01 2018-01-01
3 2018-09-03 real_gdp_yoy   3.2 positive 2018-07-01 2018-01-01
4 2018-09-04 real_gdp_yoy   3.2 positive 2018-07-01 2018-01-01
5 2018-09-05 real_gdp_yoy   3.2 positive 2018-07-01 2018-01-01
6 2018-09-06 real_gdp_yoy   3.2 positive 2018-07-01 2018-01-01

问题:我希望图形中的y数据(值)为3.2、3.1和2.5。但是,ggplot看起来好像在绘制不同的数字。这可能是一个简单的错误,但我很想念它。

my_df <-  
  structure(list(Date = structure(c(17775, 17776, 17777, 17778, 17779, 17780, 17781, 17782, 17783, 
                                    17784, 17785, 17786, 17787, 17788, 17789, 17790, 17791, 17792, 
                                    17793, 17794, 17795, 17796, 17797, 17798, 17799, 17800, 17801, 
                                    17802, 17803, 17804, 17805, 17806, 17807, 17808, 17809, 17810, 
                                    17811, 17812, 17813, 17814, 17815, 17816, 17817, 17818, 17819, 
                                    17820, 17821, 17822, 17823, 17824, 17825, 17826, 17827, 17828, 
                                    17829, 17830, 17831, 17832, 17833, 17834, 17835, 17836, 17837, 
                                    17838, 17839, 17840, 17841, 17842, 17843, 17844, 17845, 17846, 
                                    17847, 17848, 17849, 17850, 17851, 17852, 17853, 17854, 17855, 
                                    17856, 17857, 17858, 17859, 17860, 17861, 17862, 17863, 17864, 
                                    17865, 17866, 17867, 17868, 17869, 17870, 17871, 17872, 17873, 
                                    17874, 17875, 17876, 17877, 17878, 17879, 17880, 17881, 17882, 
                                    17883, 17884, 17885, 17886, 17887, 17888, 17889, 17890, 17891, 
                                    17892, 17893, 17894, 17895, 17896, 17897), class = "Date"), 
                 Asset = c("real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy", 
                           "real_gdp_yoy", "real_gdp_yoy", "real_gdp_yoy"), 
                 Value = c(3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 
                           3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 
                           3.2, 3.2, 3.2, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 
                           3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 
                           3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 
                           3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 
                           3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 
                           3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 
                           3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 3.1, 
                           3.1, 3.1, 3.1, 3.1, 2.5, 2.5), 
                 pos_neg = c("positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive", "positive", "positive", 
                             "positive", "positive", "positive"), 
                 qtr_date = structure(c(17713, 17713, 17713, 17713, 17713, 17713, 17713, 
                                        17713, 17713, 17713, 17713, 17713, 17713, 17713, 
                                        17713, 17713, 17713, 17713, 17713, 17713, 17713, 
                                        17713, 17713, 17713, 17713, 17713, 17713, 17713, 
                                        17713, 17713, 17805, 17805, 17805, 17805, 17805, 
                                        17805, 17805, 17805, 17805, 17805, 17805, 17805, 
                                        17805, 17805, 17805, 17805, 17805, 17805, 17805, 
                                        17805, 17805, 17805, 17805, 17805, 17805, 17805, 
                                        17805, 17805, 17805, 17805, 17805, 17805, 17805, 
                                        17805, 17805, 17805, 17805, 17805, 17805, 17805, 
                                        17805, 17805, 17805, 17805, 17805, 17805, 17805, 
                                        17805, 17805, 17805, 17805, 17805, 17805, 17805, 
                                        17805, 17805, 17805, 17805, 17805, 17805, 17805, 
                                        17805, 17805, 17805, 17805, 17805, 17805, 17805, 
                                        17805, 17805, 17805, 17805, 17805, 17805, 17805, 
                                        17805, 17805, 17805, 17805, 17805, 17805, 17805, 
                                        17805, 17805, 17805, 17805, 17805, 17805, 17805, 
                                        17805, 17805, 17805, 17897), class = "Date"), 
                 yr_date = structure(c(17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17532, 17532, 17532, 17532, 
                                       17532, 17532, 17532, 17897), class = "Date")), 
            row.names = c(NA, -123L), class = "data.frame")




# Color bars based on postive or negative values
mycolors  <- c("positive" = "seagreen4", "negative" = "firebrick4")


# Plot
p <- ggplot(my_df, aes(x = qtr_date, y = Value)) +
  geom_col(aes(fill = pos_neg), alpha = 0.7) +
  scale_fill_manual(values = mycolors) +
  theme(legend.position = "none")
p

plot

1 个答案:

答案 0 :(得分:0)

您在每个季度日期内都有重复的值。该图显示了按季度计的价值总和。

library(tidyverse)
my_df %>% 
    group_by(qtr_date) %>% 
    summarize(sum(Value))

在绘制数据之前,应将数据汇总到四分之一水平。