Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:您能从R包动态图更改动态范围选择器的图表类型吗_R_Dygraphs - Fatal编程技术网

R:您能从R包动态图更改动态范围选择器的图表类型吗

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

我正在使用R包动态图创建一个交互式时间序列图。 我希望主图表和选择器都是条形图。 我设法把主图表做成条形图

然而,我想知道是否有办法改变图表下方显示的dyRangeSelector的图表类型。目前是一个简单的线性图。 请参见下面的代码

任何帮助都将不胜感激。事先非常感谢

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轴之上。有没有办法解决这个问题?