gnuplot多个文件并添加y值单个图

时间:2013-12-13 00:06:07

标签: file merge dataset gnuplot add

我有两个数据集,并希望在gnu绘图图上只用一行绘制它们。

我希望该行代表两个数据集中y值的总和

这两个数据集具有x和y值。

我想从两个数据集中加上两个y值。

数据集中的x点有些相同,有时则不一样。

示例数据集

数据集一

x    y
1    5
2    6
3    5
4    6

数据集二

x      y
1      1
1.7    2
3      3
7      5

2 个答案:

答案 0 :(得分:1)

对我而言,听起来你正计划做比我通常在Gnuplot中所做的更多的数学计算。您是否考虑过将工具用作pandas的python?

这可能是一个学习曲线,但这可能是学习新工具的时候了。 http://pandas.pydata.org/pandas-docs/dev/10min.html

这让你非常接近我的想法。

import pandas as pd
import matplotlib.pyplot as plt

dataSet1 = pd.DataFrame( [ [1, 2], [2, 6], [3, 5], [4, 6] ], columns=list('xy'))
dataSet2 = pd.DataFrame( [ [1, 1], [1.7, 2], [3, 3], [7, 5] ], columns=list('xy'))

dataSet1 = dataSet1.set_index('x')
dataSet2 = dataSet2.set_index('x')

full_dataset =  dataSet1.add(dataSet2, fill_value=0)
print full_dataset

full_dataset.plot()
plt.show()

给你输出:

     y
x     
1.0  3
1.7  2
2.0  6
3.0  8
4.0  6
7.0  5

Output Plot

我没有立即弄清楚如何定义添加应该检查x列,而不是添加时的索引。我看了一下:Adding two pandas dataframesRedefining the Index in a Pandas DataFrame object

答案 1 :(得分:1)

假设您可以使用cat,您可以先使用cat fileA.txt fileB.txt连接这两个文件,然后使用选项smooth frequency连接图表,该选项会为相同的x值添加所有y值:

plot '< cat fileA.txt fileB.txt' smooth frequency with lines