小编byt*_*101的帖子

ggplot2 有没有办法将文本放置在弯曲的路径上?

有没有办法在 ggplot2 中沿着密度线放置文本,或者就此而言,沿着任何路径放置文本?我的意思是一次作为标签,采用这种 xkcd 风格:18351950(中间面板)、13922234(中间面板)。或者,有没有办法让该行重复文本,例如xkcd #930?我对所有 xkcd 表示歉意,我不确定这些样式叫什么,这是我能想到的唯一一个我以前见过的以这种方式区分区域的地方。

注意:我不是在谈论手绘的 xkcd 风格,也不是在顶部放置平面标签

我知道我可以放置一段笔直/平坦的文本,例如 viaannotategeom_text,但我很好奇弯曲此类文本,使其看起来沿着数据的曲线。

我也很好奇这种文本风格有名字吗?

ggplot2 图表示例使用annotate(...)

带有水平文本的 ggplot 图表

上面的示例图在 Inkscape 中用弯曲文本修改:

第一张图的修改版本,其中文本遵循弯曲路径


编辑:根据要求,这是 3 月和 4 月前两次试运行的数据:

df <- data.frame(
  monthly_run = c('March', 'March', 'March', 'March', 'March', 'March', 'March', 
                  'March', 'March', 'March', 'March', 'March', 'March', 'March', 
                  'April', 'April', 'April', 'April', 'April', 'April', 'April', 
                  'April', 'April', 'April', 'April', 'April', 'April', 'April'),
  duration    = …
Run Code Online (Sandbox Code Playgroud)

visualization r data-visualization ggplot2

41
推荐指数
2
解决办法
2277
查看次数

在直方图上叠加数据的一致方法(从 geom_histogram 中提取分箱数据?)

我的目标是在 ggplot2 中创建这个图:

水平直方图,数据条目填满直方图

经过大量摆弄后,我成功地为这个数据集创建了它,如上面的屏幕截图所示,使用以下相当脆弱的代码(请注意width=63, boundary=410,它需要大量的试验和错误):

ex = data.frame(year=c(1971,1973,1975,1977,1979,1981,1983,1985,1987,1989,1991,1993,1995,1997,1999,2001,2003,2005,2007,2009,2011,2013,2015,2017,2019), occurances=c(347,773,589,462,280,455,1037,707,663,746,531,735,751,666,642,457,411,286,496,467,582,577,756,557,373))
ex_bin = mutate(ex, range=cut_width(occurances, width=63, boundary=410)) # bin the data
ex_bin$lower = as.numeric(sub("[\\(\\[](.+),.*", "\\1", ex_bin$range)) # extract range lower bound
ex_bin$upper = as.numeric(sub("[^,]*,([^]]*)\\]", "\\1", ex_bin$range)) # extract range upper bound
ex_bin$pos = as.numeric(rbind(by(ex_bin, seq_len(nrow(ex_bin)), function(ey) count(ex_bin[ex_bin$year <= ey$year & ex_bin$upper == ey$upper, ])))[1,]) # extract our visual x position, based on the number of years already in this bin
ggplot(ex_bin, aes(x=occurances, fill=year==2019)) +coord_flip() + geom_histogram(binwidth = 63, boundary=410) + …
Run Code Online (Sandbox Code Playgroud)

r histogram ggplot2

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

JavaFX 2创建自定义窗格

我已经看过几个自定义JavaFX控件教程,但没有关于如何创建自定义窗格布局的教程.我问,因为我试图创建一个流动的双面(想象形式(名称,值)对)布局窗格与标题.我以前在WPF中完成了控制,并将其"迁移"到JavaFX.除了OpenJDK源之外,我还有什么地方可以学习如何制作自定义布局窗格吗?

为了澄清:我的寻找如何创建自定义面板布局管理器,而不是定制控件

layout javafx-2

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

(n)python中的curses pad不工作

我似乎无法让ncurses pad在python(2.6,2.7和3.2)中工作.直接使用http://docs.python.org/howto/curses.html上的代码我甚至无法让它工作.非填充代码非常有效.

import curses

def func(scr):
    pad = curses.newpad(100, 100)
    pad.addstr(0,0, "Testing")

    #  Displays a section of the pad in the middle of the screen
    pad.refresh( 0,0, 5,5, 10,10)

    scr.refresh()
    scr.getch()

if __name__ == '__main__':
    curses.wrapper(func)
Run Code Online (Sandbox Code Playgroud)

问题是什么?移除垫(并将垫更换为scr)工作正常

python ncurses

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

JDK 11 PreMaster 秘密调试

使用这个简单的 https 服务器,稍微修改一下以将 var 替换为 Java 8 兼容类型,我可以这样运行它:

$ java8 -cp . -Djavax.net.debug=ssl,keygen javatester.SimpleHTTPSServer | grep Nonce -C 5
SESSION KEYGEN:
PreMaster Secret:
0000: A7 7C E0 10 EB E5 7C 16   CF 70 65 30 04 AE 5B BC  .........pe0..[.
0010: 6F 61 52 6C FC 71 58 D9   F4 BD 10 70 69 10 62 2A  oaRl.qX....pi.b*
CONNECTION KEYGEN:
Client Nonce:
0000: A3 E4 45 27 77 6C 0D 5E   BD F1 4E 9D 1E 2E …
Run Code Online (Sandbox Code Playgroud)

java ssl wireshark java-11

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

JavaFX 2.2在坐标处获取节点(可视树命中测试)

如何获取鼠标/任意坐标下的控件列表(或第一个)?我知道WPF有VisualTreeHelper.HitTest,它有一个回调函数,可用于过滤掉某一点的所有控件.JavaFX有类似的东西吗?(或者不同,我只关心给定点的第一个元素)我已经看到很多信息来获取节点的坐标,但没有关于如何通过坐标获取节点的信息.

java javafx-2

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

JIT 预热后,如何使 ByteBuffer 与直接 byte[] 访问一样高效?

我正在尝试优化一个简单的解压缩例程,并遇到了这个奇怪的性能怪癖,我似乎找不到太多信息:手动实现的简单字节缓冲区比内置字节缓冲区(堆)快 10%-20% & 映射)用于简单操作(读取一个字节,读取 n 个字节,是否是流末尾)

\n

我测试了3个API:

\n
    \n
  • 方法ByteBuffer.wrap(byte[])
  • \n
  • 原始字节[]访问
  • \n
  • 字节访问的简单包装器上的方法(大部分)镜像 ByteBuffer API
  • \n
\n

简单的包装器:

\n
class TestBuf {\n    private final byte[] ary;\n    private int pos = 0;\n\n    public TestBuf(ByteBuffer buffer) {  // ctor #1\n        ary = new byte[buffer.remaining()];\n        buffer.get(ary);\n    }\n    \n    public TestBuf(byte[] inAry) { // ctor #2\n        ary = inAry;\n    }\n\n    public int readUByte() { return ary[pos++] & 0xFF; }\n\n    public boolean hasRemaining() { return pos < ary.length; }\n\n    public void get(byte[] …
Run Code Online (Sandbox Code Playgroud)

java performance jvm bytebuffer jmh

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

使用带有jruby的fxml

我已经看过如何用Java编写原始JavaFX代码,如何用Java编写FXML代码,如何在JRuby中编写原始JavaFX代码,但似乎无法找到使用FXML与JRuby的任何内容.目前可以在JRuby中使用FXML吗?如果是这样,有没有很好的教程?

更新:JRubyFX 0.9.1及更高版本支持FXML

ruby java jruby javafx-2 fxml

3
推荐指数
1
解决办法
646
查看次数