小编Rob*_*inL的帖子

Highcharts - redraw()与新的Highcharts.chart

我很难理解更新highcharts图表的正确方法.假设我已经渲染了一个图表,然后我想以某种方式更新它.例如,我可能想要更改数据系列的值,或者我可能想要启用dataLabels.

目前我唯一可以弄清楚如何做到这一点的方法是改变图表选项,并new Highcharts.chart用来告诉highcharts重绘.

但是,我想知道这是否有点矫枉过正,而且可能有可能"原位"改变图表,而不必从头开始new Highcharts.chart.我注意到有一种redraw()方法,但我似乎无法让它工作.

很感谢任何形式的帮助.

谢谢,

知更鸟

示例代码如下,底部有一个jsFiddle

$(document).ready(function() {

chartOptions = {
    chart: {
        renderTo: 'container',
        type: 'area',
    },
    series: [{
        data: [1,2,3]
    }]
};

chart1 = new Highcharts.Chart(chartOptions);


chartOptions.series[0].data= [10,5,2];
chart1 = new Highcharts.Chart(chartOptions);

//The following seems to have no effect
chart1.series[0].data = [2,4,4];
chart1.redraw();

});?
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/sUXsu/18/

[编辑]:

对于此问题的任何未来观众,值得注意的是没有隐藏和显示dataLabels的方法.以下显示了如何执行此操作:http://jsfiddle.net/supertrue/tCF8Y/

javascript highcharts

76
推荐指数
3
解决办法
15万
查看次数

R Markdown,Knitr,Pandoc和Bookdown之间的关系

R Markdown,Knitr,Pandoc和Bookdown的功能之间有什么关系?

具体来说,在将标记文档与嵌入式R代码(例如.Rnw或者.Rmd)转换为最终输出(例如.pdf.html)时,这些包之间的"分工"是什么?如果Knitr用于处理RMarkdown,那么这个rmarkdown包做了什么以及它与它有何不同markdown package

r pandoc knitr r-markdown bookdown

72
推荐指数
1
解决办法
1万
查看次数

javascript中++和+ = 1之间的差异

有人可以解释为什么以下函数会给出不同的结果.第一个似乎不起作用,但第二个确实有效.我很困惑,因为我认为+ = 1而且++做了同样的事情.

(我不打算实际使用这段代码,只是为了证明这一点).

/*function 1*/
function incrementIfZero1(base,element) {

    if (element == 0) {
        return base++;
    }
    else
    {
        return base;
    }
};


/*function 2*/
function incrementIfZero2(base,element) {

    if (element == 0) {
        return base+=1;
    }
    else
    {
        return base;
    }
};

incrementIfZero1(1,0) /* -> 1*/
incrementIfZero2(1,0) /* -> 2*/
Run Code Online (Sandbox Code Playgroud)

很感谢任何形式的帮助.

谢谢,

知更鸟

[编辑:]

谢谢你的回复,现在有道理了.我也尝试了以下语句,结果与函数1相同:

return (base++)
Run Code Online (Sandbox Code Playgroud)

我现在感到惊讶的是,这并没有给出与函数2相同的结果 - 我希望括号在返回之前"强制"它被评估.知道为什么不是这样吗?

javascript increment

18
推荐指数
4
解决办法
1万
查看次数

R Bookdown _bookdown.yml

Bookdown有许多配置选项,我发现很难理解如何知道一个选项是否存在,以及这些选项所在的逻辑背后的逻辑.

具体来说,我发现很难描述什么进去的选项_bookdown.yml鉴于有至少两个其他的地方,说明选择:

  • _output.yml,
  • 函数调用的参数如bookdown::render_book.

在我看来,在_bookdown.yml函数的参数和参数之间存在任何类型的1对1映射bookdown::render_book,因此_bookdown.yml似乎不仅仅是记录函数调用选项的不同方式.

我们可以在源代码中看到`_bookdown.yml'正在控制一些配置选项,但不是全部.

所以 - 重新解释这个问题 - 为什么是_bookdown.yml一个单独的配置文件以及它应该包含什么的定义?

举一个有代表性的例子,有一个chapter_name可以使用的选项_bookdown.yml.我有以下问题:

  1. 我们怎么知道这是一个选项,因为它没有在这里的文档或这里的例子中引用.
  2. 一旦我们知道它存在,我怎么知道它有什么影响?是否所有这些选项都传递给其他包(例如pandoc,rmarkdown)?我唯一可以找到参考的地方chapter_name是用于记账的CRAN源代码,即使在那里我也无法弄清楚它是如何被使用的.

注意,讨论_bookdown.yml通过笔者在这里,但我还是不完全了解.

r r-markdown bookdown

12
推荐指数
1
解决办法
843
查看次数

在 vs 代码中导入的 python 模块中设置断点

我正在尝试在 VS 代码中的外部 Python 模块中设置断点。

我尝试编辑源文件并插入import pdb; pdb.set_trace()我想要断点的位置。

这将进入 pdb 命令行调试器,而不是 VS Code GUI 中的调试器。

如何在导入的 Python 模块中设置断点以便进入 VS Code 调试器?

python visual-studio-code vscode-debugger

12
推荐指数
2
解决办法
3046
查看次数

Python无法在r +模式下打开11gb csv但在r模式下打开

我遇到一些循环通过一堆.csvs的代码的问题,如果没有任何内容(即以\n换行符结尾的文件),则删除最后一行

我的代码在除了一个文件之外的所有文件上成功运行,这是11gb目录中最大的文件.第二大文件是4.5gb.

它失败的线条很简单:

with open(path_str,"r+") as my_file:
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:

IOError: [Errno 22] invalid mode ('r+') or filename: 'F:\\Shapefiles\\ab_premium\\processed_csvs\\a.csv'
Run Code Online (Sandbox Code Playgroud)

path_str我创建使用os.file.join以避免错误,我试图重命名文件,以a.csv公正,以确保有没有什么奇怪的文件名回事.这没有任何区别.

更奇怪的是,该文件很高兴在r模式下打开.即以下代码工作正常:

with open(path_str,"r") as my_file:
Run Code Online (Sandbox Code Playgroud)

我尝试在读取模式下浏览文件,并且很高兴在文件的开头,结尾和中间读取字符.

有没有人知道Python可以处理的文件大小的限制或为什么我可能会收到此错误?我在Windows 7 64位上,有16GB的RAM.

python windows file-io

11
推荐指数
1
解决办法
329
查看次数

在R中访问闭包中的变量

在下面的例子,为什么f$if$get_i()返回不同的结果?

factory <- function() {

  my_list <- list()
  my_list$i <- 1

  my_list$increment <- function() {
    my_list$i <<- my_list$i + 1
  }

  my_list$get_i <- function() {
    my_list$i
  }

  my_list
}

f <- factory()

f$increment()
f$get_i() # returns 2
f$i # returns 1
Run Code Online (Sandbox Code Playgroud)

closures r

9
推荐指数
2
解决办法
1272
查看次数

在pandas中等效"in"关键字或子查询

我有一个Series对象(让我们调用它MySeries),它包含一个整数列表.

我还有一个单独的数据帧(比如说MyDataFrame),其中包含一个名为的列/字段MyField.

我想选择的所有记录MyDataFrame,其中值MyField是在MySeries

等效的SQL将是:

Select * from MyDataFrame 
where MyField in 
    (select * from MySeries)
Run Code Online (Sandbox Code Playgroud)

谁能建议最好的方法呢?

非常感谢您的帮助.

python pandas

8
推荐指数
1
解决办法
2660
查看次数

在dplyr 0.7.0+中正确使用dplyr :: select,使用字符向量选择列

假设我们有一个cols_to_select包含我们想要从数据帧中选择的列的字符向量df,例如

df <- tibble::data_frame(a=1:3, b=1:3, c=1:3, d=1:3, e=1:3)
cols_to_select <- c("b", "d")
Run Code Online (Sandbox Code Playgroud)

假设我们也想使用dplyr::select它,因为它是使用的操作的一部分,%>%因此使用select使代码易于阅读.

似乎有很多方法可以实现,但有些方法比其他方法更强大.请你告诉我哪个是"正确的"版本,为什么?或许还有另一种更好的方法?

dplyr::select(df, cols_to_select) #Fails if 'cols_to_select' happens to be the name of a column in df 
dplyr::select(df, !!cols_to_select) # i.e. using UQ()
dplyr::select(df, !!!cols_to_select) # i.e. using UQS()

cols_to_select_syms <- rlang::syms(c("b", "d"))  #See [here](https://stackoverflow.com/questions/44656993/how-to-pass-a-named-vector-to-dplyrselect-using-quosures/44657171#44657171)
dplyr::select(df, !!!cols_to_select_syms)
Run Code Online (Sandbox Code Playgroud)

ps我意识到这可以简单地在基础R中实现 df[,cols_to_select]

r dplyr tidyverse tidyeval rlang

8
推荐指数
1
解决办法
625
查看次数

pyspark csv的URL到数据帧,而不写入磁盘

如何将URL处的csv读取到Pyspark中的数据帧中而不将其写入磁盘?

我已经尝试了以下方法,但是没有运气:

import urllib.request
from io import StringIO

url = "https://raw.githubusercontent.com/pandas-dev/pandas/master/pandas/tests/data/iris.csv"
response = urllib.request.urlopen(url)
data = response.read()      
text = data.decode('utf-8')  


f = StringIO(text)

df1 = sqlContext.read.csv(f, header = True, schema=customSchema)
df1.show()
Run Code Online (Sandbox Code Playgroud)

csv apache-spark pyspark

8
推荐指数
1
解决办法
3994
查看次数