キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
Get the free JMP Student Edition for qualified students and instructors at degree granting institutions.
言語を選択 翻訳バーを非表示
最初に公開されたスレッドを表示

Scripters Club の録画: JSL 内で Python コードを実行する

maria_astals
Staff

プレゼンター: @martindemel@jthi

また、 ポール・ネルソンによるJMP 18のPython統合に関するWest Coast Scripter's Clubセッションの録画もご覧ください。

Running Python Code within JSL.mp4
Video Player is loading.
Current Time 0:00
Duration 51:26
Loaded: 0%
Stream Type LIVE
Remaining Time 51:26
 
1x
    • Chapters
    • descriptions off, selected
    • subtitles off, selected
    • en (Main), selected

    この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

    5件の返信5
    Ressel
    Level VI

    Re: Scripters Club の記録: JSL 内で Python コードを実行する

    もう一つの目まぐるしいセッション - 学ぶべき素晴らしいことがまだまだたくさんあります!

    @jthiが画面上のデモに使用したスクリプトは共有されますか?

    この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

    Re: Scripters Club の記録: JSL 内で Python コードを実行する

    はい、Jarmo がすぐにここにファイルを追加します

    この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

    jthi
    Super User

    Re: Scripters Club の記録: JSL 内で Python コードを実行する

    @Ressel がファイルを追加しました!

    この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

    Georg
    Level VII

    Re: Scripters Club の記録: JSL 内で Python コードを実行する

    素晴らしいプレゼンテーションでした。資料を準備して共有していただきありがとうございました!

    この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

    jthi
    Super User

    Re: Scripters Club の記録: JSL 内で Python コードを実行する

    セッションの私の部分で使用したファイルを添付しました。

    さらに、JMP の Python スクリプト エディターで使用するダーク テーマのコードも追加しました。使用したい場合は、これらのテーマがどのように機能するかを必ず理解してください。私は (まだ) 問題は発生していません。これは古いウィッシュ リスト項目なので、すべてのコメントがまだ関連しているかどうかはわかりませんhttps://community.jmp.com/t5/JMP-Wish-List/JSL-Text-Editor-Color-Themes/idi-p/56203/page/2 。「テーマ」は、C:\Users\ にあるJMPStyles.PFSファイルによって制御されます。 \AppData\Roaming\JMP\JMP\18 (Windows の場合)

    undefined

    テーマの例:

    undefined

    ここからテーマをコピーして貼り付け、JMPStyles.PFS として保存します (JMP コミュニティは .PFS ファイルのアップロードをサポートしていません)

    もっと見る...
    //*** Generated Text, Editing this incorrectly may risk not being able to start JMP ***
    Styles(
    	Dark(
    		Python(
    			Default Enabled(
    				Foreground Color({248, 248, 242}),
    				Background Color({12, 16, 33})
    			),
    			Default Disabled(),
    			Comment(
    				Foreground Color({117, 113, 94})
    			),
    			Comment Blocks(
    				Foreground Color({117, 113, 94})
    			),
    			Number(
    				Foreground Color({230, 219, 116})
    			),
    			String(
    				Foreground Color({230, 219, 116})
    			),
    			Decorators(
    				Foreground Color({230, 219, 116})
    			),
    			Quoted string(
    				Foreground Color({230, 219, 116})
    			),
    			Triple Quotes(
    				Foreground Color({230, 219, 116})
    			),
    			Triple Double Quotes(
    				Foreground Color({230, 219, 116})
    			),
    			Keyword(
    				Foreground Color({78, 201, 176})
    			),
    			Identifiers(
    				Foreground Color({220, 220, 220})
    			),
    			Operators(
    				Foreground Color({220, 220, 220})
    			),
    			Line Number(
    				Foreground Color({220, 220, 220}),
    				Background Color({12, 16, 33})
    			),
    			EOL(
    				Foreground Color({220, 220, 220}),
    				Background Color({12, 16, 33})
    			),
    			Brace Light(
    				Foreground Color({204, 221, 255}),
    				Background Color({14, 69, 131})
    			),
    			Bad Brace(
    				Background Color({107, 4, 3}),
    				Foreground Color({221, 221, 221})
    			)
    		)
    	)
    )
    
    
    

    私の例についてのコメント

    私が行ったHDBSCAN デモでは、JMP の多変量埋め込みプラットフォームを使用しているため、JMP Pro が必要です。

    オレンジ色の部分はJMP用、青色はPython用です

    undefined

    私は JMP での Python 統合をほとんど始めたばかりなので、私の Python コードは確かに最もきれいなものではありませんが、簡単な例としては問題ないはずです。

    Python Send()を使用して変数をPython側に送信する

    Python Send(dt);Python Send(cluster_cols);Python Send(clustersize);Python Send(samples);Python Send(epsilon);

    そしてPython Submit()で以下のコードを実行します

    import hdbscan
    import jmp
    import numpy as np
    import pandas as pd
    
    df = pd.DataFrame()
    for colname in cluster_cols:
    	df[colname] = np.array(dt[colname])
    
    clusterer = hdbscan.HDBSCAN(min_cluster_size=int(clustersize), min_samples=int(samples), cluster_selection_epsilon=epsilon)
    cluster_labels = clusterer.fit_predict(df)
    
    df['Clusters'] = cluster_labels
    col = dt.new_column("CLUSTERS", jmp.DataType.Numeric, jmp.ModelingType.Nominal)
    dt[col.name] = list(df.iloc[:,2])
    new_col = col.name
    
    del df

    この例では、まず次元削減(tsneまたはumap)を実行し、作成された2つの列に対してhdbscanを実行し、グラフを表示し、プロットを再作成するためのテーブルスクリプトを設定し、列をグループ化し、HDBSCANパラメータをCLUSTERSに設定します(列のプロパティに注意)。

    undefined

    Python Get Graphics() は廃止されたため、Python から JMP に画像を取得する他の方法を見つける必要があります。JMPの例では、最初に画像を保存し、次に JMP の Open() を使用して画像を JMP に読み込む方法を示しています。Python モジュール io と base64 を使用して画像を JMP に読み込む方法を示しました。

    Names Default To Here(1);
    
    Python Submit("\[
    import base64
    import io
    import matplotlib.pyplot as plt
    
    plt.clf()
    plt.plot([1, 2, 3, 4])
    plt.ylabel('some numbers')
    plt.draw()
    
    my_iobytes = io.BytesIO()
    plt.savefig(my_iobytes, format='png', bbox_inches='tight')
    my_iobytes.seek(0)
    base64data = base64.b64encode(my_iobytes.read()).decode()
    ]\");
    
    img = Open(Char To Blob(Python Get(base64data), "base64"), "png");
    nw = New Window("test", img);

    最後に、pandas データフレームと JMP データテーブル間の変換を実行する方法は多数あることを指摘しておきます。たとえば、.csv ファイルを使用して「直接」変換を実行したり、list(df.iloc[:,2]) または df[col].values.tolist() を使用したりすることができます。これらすべての例がありますが、私はまださまざまな方法に精通していないため、どの方法を使用すべきかを推奨することはできません。

    この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。