R:您能从R包动态图更改动态范围选择器的图表类型吗
我正在使用R包动态图创建一个交互式时间序列图。 我希望主图表和选择器都是条形图。 我设法把主图表做成条形图 然而,我想知道是否有办法改变图表下方显示的dyRangeSelector的图表类型。目前是一个简单的线性图。 请参见下面的代码 任何帮助都将不胜感激。事先非常感谢R:您能从R包动态图更改动态范围选择器的图表类型吗,r,dygraphs,R,Dygraphs,我正在使用R包动态图创建一个交互式时间序列图。 我希望主图表和选择器都是条形图。 我设法把主图表做成条形图 然而,我想知道是否有办法改变图表下方显示的dyRangeSelector的图表类型。目前是一个简单的线性图。 请参见下面的代码 任何帮助都将不胜感激。事先非常感谢 install.packages(c("dygraphs","xts")) library(dygraphs) library(xts) # First I create my Time series df <- a
install.packages(c("dygraphs","xts"))
library(dygraphs)
library(xts)
# First I create my Time series
df <- as.xts(ts(start =c(1950), end=c(2010),
data = runif(61,0,5)))
# Create the graph
dygraph(df, main = "Frequency") %>%
dyRangeSelector(dateWindow = c(min(index(df)), max(index(df)))) %>%
dyOptions(useDataTimezone = TRUE, plotter =
"function barChartPlotter(e) {
var ctx = e.drawingContext;
var points = e.points;
var y_bottom = e.dygraph.toDomYCoord(0); // see http://dygraphs.com/jsdoc/symbols/Dygraph.html#toDomYCoord
// This should really be based on the minimum gap
var bar_width = 2/3 * (points[1].canvasx - points[0].canvasx);
ctx.fillStyle = e.color;
// Do the actual plotting.
for (var i = 0; i < points.length; i++) {
var p = points[i];
var center_x = p.canvasx; // center of the bar
ctx.fillRect(center_x - bar_width / 2, p.canvasy,
bar_width, y_bottom - p.canvasy);
ctx.strokeRect(center_x - bar_width / 2, p.canvasy,
bar_width, y_bottom - p.canvasy);
}
}")
install.packages(c(“dygraphs”、“xts”))
图书馆(动态图)
图书馆(xts)
#首先,我创建我的时间序列
df%
动态范围选择器(日期窗口=c(最小(索引(df)),最大(索引(df)))%>%
动态选项(useDataTimezone=TRUE,绘图仪=
“功能条形图绘图仪(e){
var ctx=e.drawingContext;
var点=e点;
var y_bottom=e.dygraph.toDomYCoord(0);//请参见http://dygraphs.com/jsdoc/symbols/Dygraph.html#toDomYCoord
//这实际上应该以最小间隙为基础
变量栏宽度=2/3*(点[1]。canvasx-点[0]。canvasx);
ctx.fillStyle=e.color;
//进行实际绘图。
对于(变量i=0;i
您可以尝试stepplot,可能它不是真正的条形图,但非常接近,选择器也是stepplot
dygraph(df, main = "Frequency") %>%
dyRangeSelector(dateWindow = c(min(index(df)), max(index(df)))) %>%
dyOptions(stepPlot = TRUE ,fillGraph = TRUE, fillAlpha = 0.4)
谢谢布鲁内尔-是的,不幸的是,这是不一样的,但总比没有好。我还注意到一个问题,无论RangeSelector是线性的还是条形图,零都没有正确表示。也就是说,“零”值不在RangeSelector的x轴上,但它们始终位于x轴之上。有没有办法解决这个问题?