ggplot2:在同一个图表上绘制多个时间序列时如何获得正确的图例?

时间:2016-12-09 12:33:48

标签: r ggplot2 tidyverse

考虑以下简单示例

time_idx <- c('2015-11-06 00:35', '2015-11-06 00:36' , '2015-11-06 00:42', '2015-11-06 00:43')
bid <- c(2,2,3,4)
ask <- c(3,3,4,4.5)
q_bid <- c(3,2,4,2)
q_ask <- c(1,3,3,2)

data <- data_frame(time_idx, bid, q_bid, ask, q_ask)
data <- data %>% mutate(time_idx = ymd_hm(time_idx))

# A tibble: 4 × 5
             time_idx   bid q_bid   ask q_ask
               <dttm> <dbl> <dbl> <dbl> <dbl>
1 2015-11-06 00:35:00     2     3   3.0     1
2 2015-11-06 00:36:00     2     2   3.0     3
3 2015-11-06 00:42:00     3     4   4.0     3
4 2015-11-06 00:43:00     4     2   4.5     2

在这里,我想使用点而不是线来绘制bidask的时间序列,我希望点的size与{{1}成比例分别和q_bid

这就是我提出的:

q_ask

myplot

正如您所看到的情节是正确的,但传说是完全疯狂的。即:

  1. 这是0.4传奇?
  2. 该系列的名称为ggplot(data, aes(x = time_idx)) + geom_point(aes(y = bid, color = 'q_bid', size = q_bid, alpha = .4) ) + geom_point(aes(y = ask, color = 'q_ask', size = q_ask, alpha = .4)) + scale_x_datetime(breaks = scales::pretty_breaks(n = 10)) + scale_y_continuous(breaks = scales::pretty_breaks(n = 10)) + theme(axis.text.x = element_text(angle=90,hjust=1)) + theme_igray() + xlab('time') + ylab('price') bid,而不是askq_ask
  3. 权重为q_bidq_bid,而不是q_ask
  4. 这里有什么问题?

    非常感谢!

0 个答案:

没有答案