小编z80*_*rew的帖子

使用Alpha通道叠加两个ggplot2 stat_density2d图

我想ggplot2用一种方式覆盖两个带有alpha通道的图,结果图像显示两个数据集.这是我的测试数据:

data = read.table(text="P1 -1 0 4\nP2 0 0 2\nP3 2 1 8\nP4 -2 -2 6\nP5 0.5 2 12")
data2 = read.table(text="Q1 1 1 3\nQ2 1 -1 2\nQ3 -1 1 8")
colnames(data) = c("name","x","y","score")
colnames(data2) = c("name","x","y","score")
Run Code Online (Sandbox Code Playgroud)

这是我如何绘制这些数据:

ggplot(data, aes(x=x,y=y)) + 
  stat_density2d(data=data,geom="tile", aes(fill = ..density..,alpha=..density..), contour=FALSE) + 
  theme(legend.position="none") + scale_fill_gradient (low = "#FFFFFF", high = "#FF0000") + 
  xlim(-3,3) + ylim(-3,3) + 
  geom_point()

ggplot(data2, aes(x=x,y=y)) + 
  stat_density2d(data=data2,geom="tile", aes(fill = ..density..,alpha=..density..), contour=FALSE) + 
  theme(legend.position="none") + 
  scale_fill_gradient (low = "#FFFFFF", high …
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2

19
推荐指数
2
解决办法
9355
查看次数

增加 Electron 渲染器进程中的 JavaScript 堆内存

我的 Electron 应用程序在渲染器进程中需要大量内存。是的,这是有意的,不,没有办法解决它。(至少没有任何意义。)

performance.memory在渲染器进程中使用给出: jsHeapSizeLimit: 3760000000。而且我确实可以分配大约 3.5 GB 的内存,然后进程就会崩溃。

现在,有--max-old-space-size命令行参数来控制 Electron 应用程序中渲染器进程的可用 JS 堆大小。main.js我这样设置:

app.commandLine.appendSwitch('js-flags', '--max-old-space-size=1024')
Run Code Online (Sandbox Code Playgroud)

使用performance.memorynow 显示:jsHeapSizeLimit: 1130000000,仅比 1GB 多一点点,因此减小 JS 堆大小是有效的。但我无法将其增加到超过 3,760,000,000 字节。

尝试将其设置为 8 GB 不会增加 JS 堆大小限制:

app.commandLine.appendSwitch('js-flags', '--max-old-space-size=8192')
Run Code Online (Sandbox Code Playgroud)

performance.memory仍然说:jsHeapSizeLimit: 3760000000

我缺少什么?只能max-old-space-size减少可用内存而不能增加吗?或者我是否必须设置另一个参数以便渲染器进程可以利用可用的旧空间?

的重要部分process.versions

{
  node: '14.16.0',
  v8: '8.9.255.24-electron.0',
  electron: '12.0.4',
  chrome: '89.0.4389.114'
}
Run Code Online (Sandbox Code Playgroud)

我的 16GB Macbook 和 64GB Windows 桌面上都会出现这种情况。

google-chrome heap-memory electron

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

如何在跨平台应用程序中存储首选项(和用户设置)?

我正在一个GUI桌面应用程序上工作,该应用程序应在Windows,Mac OS X和Linux上本机运行。在跨平台应用程序中存储首选项的首选方法是什么?我正在使用C ++,但是该问题(及其答案)对于任何本地编译语言都应有效。(有关动态语言和Java的解决方案,请参见此处。)

到目前为止,我的研究告诉我,至少有两种策略:
(A)使用特定于操作系统的API首选项功能。
(B)将首选项存储在适当的(特定于OS的)文件夹中的文件中。

让我们考虑方法(A):我假设这NSUserDefaults是Mac OS X的正确方法。在Windows系统上,我将通过写入注册表RegOpenKeyEx。但是,出现了一些问题:是否有与此相对应的可移植Linux API?写入Windows注册表真的是可以应对未来的解决方案吗?

为了简单起见,我倾向于遵循方法(B)。因此,我仅具有特定于操作系统的代码即可获取适当的目录,在该目录中,我可以按照自己选择的格式存储数据。在Windows上,我已经学到了SHGetFolderPath(或者SHGetKnownFolderPath对于最近的Windows系统),这CSIDL_LOCAL_APPDATA是应该走的路。在Mac上,NSSearchPathForDirectoriesInDomainsAPI调用应该执行相同的操作;尽管使事情变得更复杂,但它是一个Objective-C API。最后,对于Linux版本getenv("HOME")getpwuid()似乎建议使用(并作为备用解决方案)。

总结一下我的问题:
1.是否有任何模式被认为是此任务的最佳实践?
2.是否有C ++类将所有肮脏的事物抽象化,例如找到正确的文件夹?(我遇到了QSetting,但是我使用的是FLTK,我不想更改我的GUI工具包。)

编辑:
“首选项”是指可以由应用程序和用户更改的数据,例如最近文件列表,首选窗口大小等。

c++ cross-platform preferences fltk

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

如何以编程方式获取系统偏好设置中设置的 macOS 键盘快捷键?

在 macOS 上,使用英文键盘时,组合键CMD+Backtick用于循环浏览应用程序打开的窗口。例如,在德语键盘上,组合是CMD+<. 甚至可以使用System Preferences-> Keyboard-> Shortcuts-> Keyboard->配置此快捷方式Move focus to next window

\n\n

对于使用 FLTK 的多窗口 GUI 应用程序,我想利用此快捷方式,但不知道如何获取用户在其系统上设置的组合。所以我正在寻找一个 macOS 系统调用,它可以为我提供Move focus to next window在这台 Mac 上使用的组合键。

\n\n

当然,如果有一种使用 FLTK 的内置方式,我会更喜欢这种方式,而不是使用本机系统调用。

\n\n

谷歌搜索这个问题是一场噩梦......

\n\n

2017年8月10日更新\n\xc3\x96\xc3\xb6\的答案给了我一些额外研究的想法。从那以后我了解到首选项存储在 中com.apple.symbolichotkeys,更准确地说是存储在键 27 中。

\n\n
        27 =         {\n        enabled = 1;\n        value =             {\n            parameters =                 (\n                98,\n                11,\n                524288\n            );\n            type = standard;\n        };\n    };\n
Run Code Online (Sandbox Code Playgroud)\n\n

参数 1 …

c++ keyboard macos fltk

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

JavaScript Array.sort:显示进度指示器

sort我正在对一个大数组进行排序,并希望在运行时更新我的​​网络应用程序中的 UI 。在我的自定义比较函数中,我每进行 10,000 次(左右)比较就会更新一次 HTML 内容,但浏览器不会反映这些更改。

large_array.sort( (a,b) => {
    ++comparisons
    if( comparisons % 10000 == 0 ) {
        // this works:
        console.log(comparisons)
        // this doesn't:
        document.querySelector('#sort-progress').textContent = comparisons
    }
    return custom_sort(a,b)
})
Run Code Online (Sandbox Code Playgroud)

我发现使用网络工作者应该是“正确”的解决方案,但这意味着完全重新设计应用程序。所以我希望找到一些解决方法。

javascript

0
推荐指数
1
解决办法
155
查看次数