我正在尝试使用ggplot2对财务数据进行蜡烛图。
我使用rgdax库来检索加密货币数据。
require(ggplot2)
require(rgdax)
require(quantmod)
candles <- public_candles(product_id = "ETH-EUR")
candles$candleLower <- pmin(candles$open, candles$close)
candles$candleMiddle <- NA
candles$candleUpper <- pmax(candles$open, candles$close)
candles$fill <- ''
candles$fill[candles$open < candles$close] = 'green'
candles$fill[candles$fill ==''] = 'red'
#Add Moving Averages
candles$ma200 <- SMA(candles$close, 200)
candles$ma50 <- SMA(candles$close, 50)
#Graphing Step
g <- ggplot(candles, aes(x=time, lower=candleLower, middle=candleMiddle, upper=candleUpper, ymin=low, ymax=high))
g <- g + geom_boxplot(stat='identity', aes(group=time, fill=fill))
g <- g + geom_line(aes(x=time, y=ma50))+ geom_line(aes(x=time, y=ma200))
g <- g + scale_x_datetime()
g
我遇到的问题是日期是连续的,我希望它们是离散的。因此错误消息:
提供给连续刻度的离散值
我还希望保留全部时间,包括小时,分钟和秒。
我尝试使用scale_x_date从zoo包中使用as.Date,但我有同样的错误。
以下是数据框的摘录:
> candles
time low high open close volume
281 2018-02-13 16:40:00 684.55 684.55 684.55 684.55 0.14481784
280 2018-02-13 16:41:00 684.55 684.55 684.55 684.55 0.04325781
279 2018-02-13 16:43:00 683.99 684.55 684.55 683.99 0.60137169
278 2018-02-13 16:44:00 683.98 684.00 684.00 683.98 0.43150033
277 2018-02-13 16:46:00 682.72 683.90 683.90 682.72 1.73803500
276 2018-02-13 16:47:00 682.51 682.51 682.51 682.51 0.01398156
275 2018-02-13 16:49:00 682.51 682.51 682.51 682.51 0.28122771
274 2018-02-13 16:50:00 683.00 683.58 683.58 683.00 1.52767648
273 2018-02-13 16:51:00 682.99 683.00 682.99 683.00 0.29247699
272 2018-02-13 16:52:00 683.00 683.00 683.00 683.00 0.02190716
271 2018-02-13 16:54:00 683.00 683.58 683.00 683.58 0.50166543
270 2018-02-13 16:56:00 683.58 683.61 683.58 683.61 11.81034652
269 2018-02-13 16:58:00 683.98 683.99 683.99 683.98 0.44021340
268 2018-02-13 17:01:00 684.17 684.23 684.17 684.22 0.53595431
267 2018-02-13 17:02:00 684.37 684.37 684.37 684.37 0.48513463
266 2018-02-13 17:03:00 684.43 684.43 684.43 684.43 0.05492116
265 2018-02-13 17:05:00 684.43 684.43 684.43 684.43 0.11513667
264 2018-02-13 17:06:00 684.42 684.42 684.42 684.42 1.12376641
263 2018-02-13 17:07:00 684.43 684.43 684.43 684.43 0.57568335
262 2018-02-13 17:08:00 684.42 684.43 684.42 684.43 0.34713259
261 2018-02-13 17:09:00 684.42 684.42 684.42 684.42 9.89238437
260 2018-02-13 17:10:00 684.43 684.43 684.43 684.43 0.07287131
259 2018-02-13 17:11:00 684.43 684.48 684.43 684.48 1.19321749
258 2018-02-13 17:12:00 684.47 684.48 684.47 684.47 0.22166553
257 2018-02-13 17:13:00 684.21 684.47 684.47 684.21 0.06647252
这是预期的输出:
答案 0 :(得分:1)
对代码进行了一些更改:<script>
$(function() {
$('#calendar').fullCalendar({
schedulerLicenseKey: 'GPL-My-Project-Is-Open-Source',
now: '{!calCurrentDate}',
minTime: '08:30',
maxTime: '17:00',
slotLabelInterval: '03:30:00',
slotDuration: '03:30:00',
snapDuration: '03:30:00',
slotLabelFormat: ['dddd MMM DD, YYYY','h(:mm)a'],
slotWidth: '75',
editable: true, // enable draggable events
businessHours: false,
aspectRatio: 2.75,
scrollTime: '08:00', // undo default 6am scrollTime
要求中间值不是geom_boxplot
,所以我将其设置为打开和关闭的平均值,但它可以设置为任何其他值而不是比NA
。然后,我还将日期转换为NA
以供POSIXct
使用,并添加了一些格式,以便更好地显示标签。
有了这些改变,我认为它现在有效,我希望它有用。
scale_x_datetime