小编Cha*_*apo的帖子

将常规绘图对象强制转换为Grob,以便在grid.arrange中使用

b <- ggplot(cars,aes(x=speed,y=dist))+geom_line()
grid.arrange(
    b,
    plot(cars),
    ncol=1
)
Run Code Online (Sandbox Code Playgroud)

给我以下错误

gList中的错误(列表(grobs = list(list(x = 0.5,y = 0.5,width = 1,height = 1,:"gList"中只允许'grobs')

让我们假设我的第二个图必须从plot函数中出来.如何将该输出转换为类似grob对象,以便它可以很好地运行grid.arrange

plot r ggplot2 gridextra grob

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

PyPdf2具有相同名称的嵌套书签不起作用

当您尝试使用相同名称嵌套多个书签时,PyPdf2不会将其考虑在内.下面是自包含的python代码来测试我的意思(你需要在工作文件夹中有3个名为a,b和c的pdf文件来测试它)

from PyPDF2 import PdfFileReader, PdfFileMerger

def main():

merger = PdfFileMerger()
pagenum = 0
firstOne = True
for file in ["a.pdf","b.pdf","c.pdf"]:
    print("next row")
    pdf = PdfFileReader(open(file,"rb"))
    merger.append(pdf)
    if firstOne:
        child = merger.addBookmark(title="blabla",pagenum=1)
        firstOne = False
    else:
        child = merger.addBookmark(title="blabla",pagenum=1, parent=child)

merger.write("test.pdf")        

if __name__ == "__main__":
   main()
Run Code Online (Sandbox Code Playgroud)

我希望得到的pdf有三层嵌套书签

blabla
    blabla
        blabla
Run Code Online (Sandbox Code Playgroud)

但我得到了

blabla
    blabla
    blabla
Run Code Online (Sandbox Code Playgroud)

有什么方法可以确保不会发生这种情况?

编辑:我已删除pagenum变量,因为我希望这3个书签指向同一页面.

python pdf bookmarks pypdf pypdf2

9
推荐指数
1
解决办法
626
查看次数

R中的regexpr语法

我正在尝试以下内容,这应该允许我获得介于productUrl://和之间的所有内容?

(?<=\"productUrl\"\:\"\/\/)(.*?)(?=\?)

以上工作在https://regexr.com/

然后我试图逃避反斜杠以使该字符串适合grep函数,但没有运气.这样做的正确方法是什么?

请参阅此示例:链接到示例

我实际上需要提取与我的模式匹配的子串,因此grep可以与另一个函数一起使用.

regex r

9
推荐指数
1
解决办法
217
查看次数

如何在dc.js/reductio/crossfilter中生成滚动标准折线图

我想在一个日期间隔的值的总和上显示带有滚动标准的折线图.

生成crossfilter/reductio对象的代码是:

myCrossfilter = crossfilter(data);

function getRunningDates(numDays) {
    return function getDates(d) {
        var s = d.ValueDate;
        var e = new Date(s);
        e.setDate(e.getDate() + numDays);
        a = [];
        while (s < e) {
            a.push(s);
            s = new Date(s.setDate(
                s.getDate() + 1
            ))
        }
        return a;
    }
}

var dim1 = myCrossfilter.dimension(getRunningDates(20), true);
var dim2 = myCrossfilter.dimension(dc.pluck("ValueDate"));
var group1 = dim1.group();
var group2 = dim2.group();
var reducerRolling = reductio()
    .std("value");
reducerRolling(group1);
var reducer = reductio()
    .sum("value")
reducer(group2);
Run Code Online (Sandbox Code Playgroud)

我把所有东西放到一个jsFiddle中来表明我的意思(无关的问题:我不明白图表上的日期如何超出我dateToInit在小提琴中定义的变量). …

javascript crossfilter dc.js reductio

7
推荐指数
1
解决办法
142
查看次数

python中的Numba jit警告解释

我已经定义了以下递归数组生成器,并且正在使用 Numba jit 来尝试加速处理(基于这个 SO 答案

@jit("float32[:](float32,float32,intp)", nopython=False, nogil=True)
def calc_func(a, b, n):
    res = np.empty(n, dtype="float32")
    res[0] = 0
    for i in range(1, n):
        res[i] = a * res[i - 1] + (1 - a) * (b ** (i - 1))
    return res
a = calc_func(0.988, 0.9988, 5000)
Run Code Online (Sandbox Code Playgroud)

我收到了一堆我不太明白的警告/错误。希望能帮助解释它们并使它们消失,以便(我假设)更快地加快计算速度。

他们在下面:

NumbaWarning:编译正在回退到启用循环提升的对象模式,因为函数“calc_func”类型推断失败,原因是:Function() 与类型参数的使用无效:(int64, dtype=Literalstr) * 参数化

在定义 0 中:所有模板都被文字拒绝。

在定义 1 中:没有文字的所有模板都被拒绝。此错误通常是由传递命名函数不支持的类型的参数引起的。

[1] 期间:解析被调用者类型:Function()

[2] 期间:键入呼叫 res = np.empty(n, dtype="float32")

文件“thenameofmyscript.py”,第 71 行:

def calc_func(a, b, n):
    res …
Run Code Online (Sandbox Code Playgroud)

python recursion numpy python-3.x numba

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

scipy差分进化设置问题

下面是一个非常愚蠢的例子,它基本上是我现实世界用例的简化版

import pandas as pd
from scipy.optimize import differential_evolution
import time

def optimizer_function(x, cost_name):
    print(cost_name)
    a = df_generator(x)
    return cost_function(a,cost_name)

def df_generator(x):
    return pd.DataFrame({"a":[x**2+3*x+8 for i in range(-int(x),int(x))]})

def cost_function(df, name):
    cost = min(df["a"])
    if name == "distance":
        cost = 2*cost
    return cost


def optimiser(criteria):
    print("start optimization")
    start = time.process_time()
    print(start)
    result = differential_evolution(func=optimizer_function, bounds=[(-100,100)], 
                                    args=(criteria))
    end = time.process_time()
    print(end)
    print(end - start)
    print("end optimization")


if __name__ == '__main__':
    optimiser("distance")
    print("all good")
Run Code Online (Sandbox Code Playgroud)

但我无法让它工作。我希望它能给我x最小化的值cost_function,但我收到以下错误消息:

RuntimeError:类似映射的可调用函数必须采用 f(func, iterable) …

python scipy python-3.x scipy-optimize

6
推荐指数
1
解决办法
8860
查看次数

获取 IP 地址以用于网络上的 docker 容器

我的 NAS 是我运行容器的地方。它位于192.168.1.23我的网络上。

我在用户定义的网络中运行了几个容器。这是docker network inspect(我已经手动删除了容器):

[
    {
        "Name": "traefik2_proxy",
        "Id": "fb2924fe59fbb0436c72f11cb028df832a473a165162ecf08b7e3a946cfa2d3c",
        "Created": "2020-05-13T23:23:16.16424119+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "192.168.90.0/24",
                    "Gateway": "192.168.90.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]

Run Code Online (Sandbox Code Playgroud)

我有一个特定容器位于该网络中的 IP 地址192.168.90.16,我9118在 docker-compose 中使用以下内容公开了端口:

ports:
  - target: 9118
    published: 9118
    protocol: tcp
Run Code Online (Sandbox Code Playgroud)

这是portainer屏幕截图:

在此处输入图片说明

我希望能够使用连接到该容器, …

docker docker-compose docker-networking docker-network

6
推荐指数
1
解决办法
96
查看次数

在 javascript 中使用 fetch 时访问标头

我使用以下命令将 zip 文件从 Nodejs 服务器发送到浏览器

res.set("Content-Type", "application/octet-stream");
res.set("Content-disposition", `attachment; filename="`+zip_name+`.zip"`);
res.set("Content-Length", zipBuff.length);
res.send(zipBuff);
Run Code Online (Sandbox Code Playgroud)

然后我使用以下方法获取它:

fetch("/my/url", {
    method: "POST",
    body: formData,
})
    .then(response => {
        return response.blob();
    })
    .then(response => {
        const blob = new Blob([response], {type: 'application/zip'});
        const downloadUrl = URL.createObjectURL(blob);
        const a = document.createElement("a");
        a.href = downloadUrl;
        a.download = "blah.zip";
        document.body.appendChild(a);
        a.click();
    });
Run Code Online (Sandbox Code Playgroud)

我希望能够使用zip_name而不是blah文件名,但我无法弄清楚如何Content-disposition使用fetch.

有人可以解释一下它是如何完成的吗?

javascript request-headers http-headers fetch-api

6
推荐指数
2
解决办法
5354
查看次数

如何在R中结合布局使用对功能?

我正在尝试将一个简单的图例添加到自定义对图中.

这是可重现的代码(没有我的自定义对功能):

layout(cbind(1,2),width=c(1,1))
layout.show(2)
pairs(USJudgeRatings)
Run Code Online (Sandbox Code Playgroud)

为什么对功能"擦除"我的布局信息?

layout r

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

convert float to string numba python numpy array

I am running a @nb.njit function within which I am trying to put an integer within a string array.

import numpy as np
import numba as nb

@nb.njit(nogil=True)
def func():
    my_array = np.empty(6, dtype=np.dtype("U20"))
    my_array[0] = np.str(2.35646)
    return my_array


if __name__ == '__main__':
    a = func()
    print(a)
Run Code Online (Sandbox Code Playgroud)

I am getting the following error :

numba.errors.TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Invalid use of Function(<class 'str'>) with argument(s) of type(s): (float64)
Run Code Online (Sandbox Code Playgroud)

Which function am I supposed to use …

python string floating-point numpy numba

5
推荐指数
1
解决办法
244
查看次数