TL/DR : 私がやろうとしていること:
- データフレームを使用する (df の既存の大規模なデータセット)
- スタンドアロン スクリプトとして実行 (jupyter なし)
- データを簡単に操作/探索できる
- 単純だが完全な例 (多くのコード スニペットが動作しない)
過去に、データフレーム、matplotlib、および tkinter を問題なく使用していましたが、データ セットのサイズでパフォーマンスの壁にぶつかり始めていました。最近、データ分析とライブラリに焦点が当てられているように思えますが、私は物事をより現代的に見せ、より少ないコードで対話性を向上させることができると考えました. 問題の一部は、現在の/ベストプラクティスが何であるか、またはそれをすべて行う方法さえも明確ではないことを行う方法が多すぎるようです.
私は Bokeh の例に非常に近いと思っていましたが、「Scatter」が bokeh.plotting または bokeh.charts モジュールの一部ではなく、bkcharts プロジェクトに分割されていることがわかりました。いいえ、ホロビューに移動されたのか、それともホロプロットまたは hvplot なのか...さらに掘り下げましょう。PyViz に移動されたようですが、bokeh バックエンドで hvplot を使用しているようです。頭が回転しているすべてのライブラリとツールにとても混乱しています。
誰かが上記の要件を備えた簡単な(しかし完全な)例を見せてくれたら本当にありがたいです?
これは、matplotlib とデータフレームを使用した非常に単純化された古い例です (単純化のために tkinter のインタラクティブなものは削除されています) 。
import matplotlib.pyplot as plt
from io import StringIO
import pandas as pd
data_ssv = """tone_amp_0 tone_freq_0 SNR
75.303 628.0 68.374
84.902 8000.0 61.292
92.856 288.0 70.545
70.000 2093.0 35.036
76.511 6834.0 66.952 """
data = pd.read_table(StringIO(data_ssv), sep="\s+", header=0)
x_points=data.loc[:, ['tone_amp_0']]
y_points=data.loc[:, ['SNR']]
z_points=data.loc[:, ['tone_freq_0']]
fig = plt.figure()
ax = plt.axes()
ax.scatter(x_points, y_points, c=z_points, cmap='hsv');
plt.show()
アップデート:
これは私がこれまでに行った中で最も近いものですが、データはプロットされていません:
import pandas as pd
from bokeh.plotting import figure
from bokeh.io import output_file,show
from io import StringIO
data_ssv = """tone_amp_0 tone_freq_0 SNR
75.303 628.0 68.374
84.902 8000.0 61.292
92.856 288.0 70.545
70.000 2093.0 35.036
76.511 6834.0 66.952 """
data = pd.read_table(StringIO(data_ssv), sep="\s+", header=0)
p = figure(x_axis_label='tone_amp_0', y_axis_label='SNR')
p.circle(x=data.loc[:, ['tone_amp_0']], y=data.loc[:, ['SNR']])
output_file("basic_interactive_plot.py.html")
show(p)