有没有办法在 ggplot2 中沿着密度线放置文本,或者就此而言,沿着任何路径放置文本?我的意思是一次作为标签,采用这种 xkcd 风格:1835、1950(中间面板)、1392或2234(中间面板)。或者,有没有办法让该行重复文本,例如xkcd #930?我对所有 xkcd 表示歉意,我不确定这些样式叫什么,这是我能想到的唯一一个我以前见过的以这种方式区分区域的地方。
注意:我不是在谈论手绘的 xkcd 风格,也不是在顶部放置平面标签
我知道我可以放置一段笔直/平坦的文本,例如 viaannotate或geom_text,但我很好奇弯曲此类文本,使其看起来沿着数据的曲线。
我也很好奇这种文本风格有名字吗?
ggplot2 图表示例使用annotate(...):
上面的示例图在 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) 我的目标是在 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) 我已经看过几个自定义JavaFX控件教程,但没有关于如何创建自定义窗格布局的教程.我问,因为我试图创建一个流动的双面(想象形式(名称,值)对)布局窗格与标题.我以前在WPF中完成了控制,并将其"迁移"到JavaFX.除了OpenJDK源之外,我还有什么地方可以学习如何制作自定义布局窗格吗?
为了澄清:我的寻找如何创建自定义面板布局管理器,而不是定制控件
我似乎无法让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)工作正常
使用这个简单的 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) 如何获取鼠标/任意坐标下的控件列表(或第一个)?我知道WPF有VisualTreeHelper.HitTest,它有一个回调函数,可用于过滤掉某一点的所有控件.JavaFX有类似的东西吗?(或者不同,我只关心给定点的第一个元素)我已经看到很多信息来获取节点的坐标,但没有关于如何通过坐标获取节点的信息.
我正在尝试优化一个简单的解压缩例程,并遇到了这个奇怪的性能怪癖,我似乎找不到太多信息:手动实现的简单字节缓冲区比内置字节缓冲区(堆)快 10%-20% & 映射)用于简单操作(读取一个字节,读取 n 个字节,是否是流末尾)
\n我测试了3个API:
\nByteBuffer.wrap(byte[])简单的包装器:
\nclass 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编写原始JavaFX代码,如何用Java编写FXML代码,如何在JRuby中编写原始JavaFX代码,但似乎无法找到使用FXML与JRuby的任何内容.目前可以在JRuby中使用FXML吗?如果是这样,有没有很好的教程?