独立脚本中的交互式数据帧散点图(无jupyter)

2024-10-03 00:32:27 发布

您现在位置:Python中文网/ 问答频道 /正文

TL/DR:我想做的是:

  1. 使用dataframe(df中的大型现有数据集)
  2. 作为独立脚本运行(无jupyter)
  3. 能够轻松地交互/浏览数据
  4. 简单但完整的示例(看到许多代码片段最终无法工作)

在过去,我对dataframe、matplotlib和tkinter的处理还不错,但我的数据集大小开始出现性能问题。最近我把注意力都放在了数据分析和库上,我觉得我可以用更少的代码让事情看起来更现代,提高交互性。问题的一部分似乎是做事情的方式太多,以至于不清楚当前/最佳实践是什么,甚至不清楚如何做到这一切。你知道吗

我以为我真的很接近波基的例子,但后来我发现,“分散”不是一部分博克。密谋或者博基图表模块,并被分入项目。不,它被移到了全息视图中,或者是全息图还是hvplot。。。让我们进一步挖掘,好吧,看起来它可能是移到PyViz,但使用波基后端hvplot。我对所有的图书馆和工具都感到困惑。你知道吗

我真的很感激如果有人能给我一个简单(但完整)的例子与上述要求?你知道吗

下面是使用matplotlib和dataframes的旧的非常简化的示例(为了简单起见,删除了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)


Tags: 数据fromimportdatamatplotlibaspltloc