origin结合python复刻图表
origin结合python复刻图表
gyhhl本文主要介绍使用python和origin进行图表复刻 以下图为例
第一步 打开origin软件后,然后依次点击工具—>图像数字化工具。界面如下图所示
第二步 导入图片
第三步 自定义坐标
x1 x2 和 y1 y2 分别代表着图表x轴和y轴的最大值与最小值。点击坐标值修改数值后拖动左边相对应的标尺,使得与数值一一对应。
修改后的图片如图所示
第四步 取点(取大概点即可)
这里使用手动取点。取完点后按CTRL+enter 。之后数据会保存在项目管理器中的digidata工作表中。
第五步 数据优化
由于手动取点或者自动取点后,数据会产生少许偏差,导致生成的图标与原图相差甚大(如下图所示),因此这里使用内置python脚本对数据进行处理。(也可使用origin内置的函数进行优化)
- 在origin内部打开python
在origin主界面—>菜单栏—>连接—>打开untitled.py 界面如下图所示 - 在空白界面输入以下代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43import pandas as pd
import numpy as np
from scipy.interpolate import make_interp_spline
import originpro as op
from scipy.interpolate import UnivariateSpline
def main():
# 使用op.find_sheet()找到活动的工作表
ws = op.find_sheet()
#wb = op.find_sheet('m','sheet1')
# 读取数据
X1 = np.array(ws.to_list(0)) #
X2 = np.array(ws.to_list(2)) #
y1 = np.array(ws.to_list(1)).ravel() #
y2 = np.array(ws.to_list(3)).ravel() #
# 打印数据以检查
#print(X, y)
# 优化数据使其平滑
# 首先,我们需要确定新的x值,这里我们使用原始x值的线性插值
new_x1 = np.linspace(X1[0], X1[-1], 300) # 生成300个新的x值
new_x2 = np.linspace(X2[0], X2[-1], 100)
spl1 = UnivariateSpline(X1, y1, k=3) # k是样条曲线的阶数
new_y1 = spl1(new_x1) # 计算新的y值
spl2 = UnivariateSpline(X2, y2, k=3) # k是样条曲线的阶数
new_y2 = spl2(new_x2) # 计算新的y值
# 将处理后的数据写回工作表
wks=op.new_sheet()
wks.from_list(0,new_x1)
wks.from_list(1,new_y1)
wks.from_list(2,new_x2)
wks.from_list(3,new_y2)
#ws.from_df()
# 运行主函数
if __name__ == '__main__':
main() 安装相应的包
在下图所示的位置依次输入 pip install numpy pip install pandas pip install scipy
返回已成功安装即可在当前界面按f5即可运行脚本。也可以在origin主界面的菜单栏—>窗口—>脚本窗口中输入run -pyf “代码文件名”.py;(如下图所示 book1为源数据,book2为优化后的数据)运行成功后会在origin主界面生成优化后的数据。在进行作图即可。
下图为最终图表(可修改k值以达到最佳)
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果