我有我尝试使用ggplot
绘图的日内交易数据。
对于某一天,数据看起来如此(例如)......
head(q1)
time last bid ask volume center
1 2014-03-19 09:30:00.480 63.74 63.39 63.74 200 11
2 2014-03-19 09:30:00.645 63.41 63.41 63.60 100 11
3 2014-03-19 09:30:00.645 63.48 63.41 63.60 100 11
4 2014-03-19 09:30:02.792 63.59 63.44 63.60 100 11
5 2014-03-19 09:30:03.023 63.74 63.44 63.75 100 12
6 2014-03-19 09:30:12.987 63.72 63.44 63.76 100 11
tail(q1)
time last bid ask volume center
2116 2014-03-19 15:59:56.266 61.68 61.67 61.74 168 12
2117 2014-03-19 15:59:58.515 61.68 61.68 61.73 100 28
2118 2014-03-19 15:59:59.109 61.69 61.68 61.73 500 11
2119 2014-03-19 16:00:00.411 61.72 61.69 61.73 100 11
2120 2014-03-19 16:00:00.411 61.72 61.69 61.73 200 11
2121 2014-03-19 16:00:00.411 61.72 61.69 61.73 351 11
使用gglot
可以很容易地将一天的数据可视化,我遇到麻烦的情况是在同一个地块上连接多天。如果我在数据框中连续2天q1
& q2
,如何在市场关闭时没有时间间隔的情况下将这些情况绘制在单个地块上,以及将一天结束与另一天结束的线路?
答案 0 :(得分:0)
您可以尝试创建一个将日间转换为无缝交易时间的新转换:
9:30 -> 0
12:00 -> approx. 0.5
16:00 -> 1
9:30 next day -> 1
以下几行中的某些内容可以做(但我还没有尝试过):
library(scales)
trading_day_trans <- function() {
trans_new("trading_day", trans, inv,
pretty_breaks(), domain = domain)
}
ggplot(rbind.fill(q1, q2)) + ... + coord_trans(xtrans = "trading_day")
您需要提供trans
(转换函数,时间 - >线性),inv
(逆变换,线性 - >时间)和domain
(时间向量)长度为2,最大 - 最大值。
改编自http://blog.ggplot2.org/post/25938265813/defining-a-new-transformation-for-ggplot2-scales。