我有两个数据集,并希望在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
答案 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
我没有立即弄清楚如何定义添加应该检查x列,而不是添加时的索引。我看了一下:Adding two pandas dataframes 和Redefining 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