使用输入文件中的多个字段绘制“带脉冲”

时间:2019-05-17 16:25:14

标签: gnuplot

样本“输入文件”:

x  y1(red)  y2(blue)  y3(green)
10  0.08      0.02      0.90
15  0.03      0.90      0.07
20  0.85      0.10      0.05

我的x轴是10、15、20或示例输入文件中的第1列。第2-4列是我的因变量,用颜色标记。 x轴是距离; y轴是脉冲信号。

目标

我想要一个以“ x:y with impulse”绘制的图形,或类似的图形。我的输出将显示为:

 x =     10   15   20
green   0.90 0.07 0.05
red     0.08 0.03 0.85
blue    0.02 0.90 0.10

在x = 10时,我会看到一条强度为0.90的绿色线,与一条强度为0.08的红色线重叠,然后是一个 >蓝色线,强度为0.02。我可以一眼看出,对于x = 10,我的参数是90%的绿色,8%的红色和2%的蓝色。

对于x = 15,我将创建强度为0.90的蓝色线,强度为0.07的绿色线和红色< / strong>强度为0.03的线。

,对于x = 20类似。

换句话说,我的目标是对于给定的x值,确切地看到我的三个因变量所占的百分比。

问题

当前,我可以做类似

的操作
plot "input file" u 1:4 w i lc rgb "green"
replot "input file" u 1:3 w i lc rgb "blue"
replot "input file" u 1:2 w i lc rgb "red"

不幸的是,最新的重绘将重叠并掩盖以前任何较小的冲积。

使用这种方法,我的情节看起来像:

 x =     10   15   20
green   0.90 ---- ----
red     0.08 0.03 0.85
blue    ---- 0.90 ----

在x = 10时,我只会看到绿色,而在x = 15时,我只会看到蓝色。因为重新绘制了红色,所以由于强度更高,它会重叠并覆盖其他颜色。在所有三个x值处我都能完美地看到红色,但是我失去了绿色和蓝色。

也许有一种方法可以告诉replot不要掩盖以前的图块吗?还是重新规划以实现上述目标的替代方法?

摘要

我试图在每个点x处绘制多字段输入,同时在我的键中为每一列保留原始图例标签。

在我的实际情况下,我有8-40个字段,跨越数百个x值,所以我不能简单地手动输入我想在哪一列。

我们非常感谢您的协助。我愿意接受任何解决方案,如果gnuplot无法做到这一点,甚至可以使用其他软件。

1 个答案:

答案 0 :(得分:1)

try (Connection conn = DriverManager.getConnection("jdbc:sqlite::memory:")) {
    try (Statement st = conn.createStatement()) {
        st.execute("restore from C:\\__tmp\\thing.sqlite");

        // let's see if we can read one of the tables
        ResultSet rs = st.executeQuery("SELECT * FROM Table1");
        while (rs.next()) {
            System.out.println(rs.getString(1));
        }
    }

} catch (Throwable e) {
    e.printStackTrace(System.err);
}

enter image description here