JMP 18新增了与 Python 集成的方式,提供了一个专为与 JMP 配合使用而设计的独立 Python 环境。此外,JMP 现在拥有原生 Python 编辑器和 JMP 专用的 Python 软件包。JMP 中的 Python 环境增强了与 JMP 的连接性和交互性,这意味着将 Python 与 JMP 结合使用变得前所未有的便捷。
熟悉 JMP 18 中的 Python 集成开发环境 (IDE),并学习如何
- 找到 Python IDE。
- 运行一个简单的例子。
- 安装 Python 包。
- 从 Python 运行 JSL 脚本。
- 将 Python 变量发送到 JSL。
- 从 Python 创建 JMP 数据表。
让我们从如何找到新的 Python 编辑器开始。
接下来,我们来看一个 Python 中的简单示例以及如何显示嵌入的日志:
Once you've determined which packages are installed, watch how to install a new one and how to upgrade pip. </CODE></P>
<P></P>
<iframe src="https://players.brightcove.net/6058004218001/default_default/index.html?videoId=6357446770112" width="1036" height="540" allowfullscreen allow="encrypted-media"></iframe>
<P></P>
<P>我使用的代码如下:</P>
<PRE class="bp-text bp-text-plain hljs bp-is-scrollable" tabindex="0"><CODE class="bp-text-code py"><SPAN class="hljs-selector-tag">import</SPAN> <SPAN class="hljs-selector-tag">jmp</SPAN>
<SPAN class="hljs-selector-tag">import</SPAN> <SPAN class="hljs-selector-tag">jmputils <SPAN class="hljs-selector-id">#listing</SPAN> packages installed jmputils<SPAN class="hljs-selector-class">.jpip</SPAN>(<SPAN class="hljs-string">'list'</SPAN>) <SPAN class="hljs-selector-id">#Installing</SPAN> function jmputils<SPAN class="hljs-selector-class">.jpip</SPAN>(<SPAN class="hljs-string">'install'</SPAN>,<SPAN class="hljs-string">'numpy </SPAN><SPAN class="hljs-string">pandas'</SPAN>) <SPAN class="hljs-selector-id">#Upgrade</SPAN> pip jmputils<SPAN class="hljs-selector-class">.jpip</SPAN>(<SPAN class="hljs-string">'install --upgrade'</SPAN>, <SPAN class="hljs-string">'pip setuptools'</SPAN>)</SPAN>
接下来我们来了解一下Python中封装了JSL脚本的jmp.run_jsl函数。
我使用的示例python代码如下:
<SPAN class="hljs-selector-tag"><SPAN class="hljs-keyword">import</SPAN> jmp <BR />jmp.run_jsl(<BR /> '''<BR /> //this is a JSL comment<BR /> Open ("$Desktop/Wafer Stacked.csv")<BR /><BR /> '''<BR />)</SPAN>
现在假设我们已经用 Pandas 将一个 CSV 数据表导入 Python。如果我们想将其作为变量发送到 JSL 脚本,我们可以使用Python 的 Get函数,并利用 Graph Builder 等 JSL 函数。
代码如下:
<SPAN class="hljs-keyword">import</SPAN> jmp
<SPAN class="hljs-keyword">import</SPAN> pandas <SPAN class="hljs-keyword">as</SPAN> pd
pd_dt= pd.read_csv(<SPAN class="hljs-string">"Wafer Stacked.csv"</SPAN>)
<SPAN class="hljs-keyword">print</SPAN> (pd_dt.head());
jmp.run_jsl(<SPAN class="hljs-string">''' jmp_dt= Python Get (pd_dt); jmp_dt<< Graph Builder( Size( 567, 444 ), Show Control Panel( 0 ), Show Legend( 0 ), Variables( X( :X_Die ), Y( :Y_Die ), Color(:Defects) ), Elements( Heatmap( X, Y, Legend( 5 ) ) ) ); '''</SPAN>)
最后,让我们使用 Python 和“jmp”模块创建一个新的 JMP 数据表。在本例中,我使用了 csv 文件和 pandas 包,但这也适用于任何其他类型的文件,尤其是那些无法在 JMP 中直接打开的文件。
你好,
不确定我是否在好的部分。我想为我的 Python 脚本创建一个插件,但它不起作用。可以吗?怎么做?
提前致谢,
艾哈迈德
嗨@AhmedMetroEM
更好的方法是将这个问题作为社区讨论部分的新主题提出。这样,有类似兴趣的人也更容易找到它: https://community.jmp.com/t5/Discussions/bd-p/discussions
您可以在正文中标记我的用户 ID 和 @,这样我就会收到有关您问题的通知。然后我可以轻松找到它并在那里回答,因为其他人可能也想加入进来。
简短回答一下:我的回答总的来说是的,但一切都取决于细节。
#adding all columns
for i in range(len(pd_dt.columns)):
jmp_dt.new_column(pd_dt.columns[i],jmp.DataType.Character)
jmp_dt[i]=pd_dt[pd_dt.columns[i]].astype(str)
这种精简版适用于小型数据表。
访问大型数据表的列时,用“开始/结束数据表”包裹代码似乎是必不可少的。
JMP 中的 Python:数据框列到数据表列的最佳实践及对计算速度的影响
[在 JMP19 中进行批量数据传输时,请使用 dt = jmp.from_dataframe(pandas_df)]