Click matplotlib scatterplot point to display another graph based on point#39;s meta data?(单击matplotlib散点图可以显示另一个基于点的元数据的图形。)
本文介绍了单击matplotlib散点图可以显示另一个基于点的元数据的图形。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经让this在我的计算机上运行,它给了我一个想法:我可以根据点的元数据显示新的图形,而不是打印字符串吗?
为了了解我的数据,我有一个包含实验名称和结果的SQL表,然后还有一个包含整个实验过程的表。使用matplotlib
绘制图形也很容易。我想创建一些交互式的东西,我可以在其中绘制实验的最终结果(某种散点图),允许用户更深入地深入研究,并查看单击点的整个实验的图形。
我似乎应该能够修改on_pick
函数来进行绘图,如下面的代码所示。
import matplotlib.pyplot as plt
class custom_objects_to_plot:
def __init__(self, x, y, name):
self.x = x
self.y = y
self.name = name
a = custom_objects_to_plot(10, 20, "a")
b = custom_objects_to_plot(30, 5, "b")
c = custom_objects_to_plot(40, 30, "c")
d = custom_objects_to_plot(120, 10, "d")
def on_pick(event):
plt.scatter([1,2,3,4], [5,6,7,8]) # For the real function, run a SQL query to
# get the data needed to do the plot of interest
plt.title(event)
plt.show()
fig, ax = plt.subplots()
for obj in [a, b, c, d]:
artist = ax.plot(obj.x, obj.y, 'ro', picker=5)[0]
artist.obj = obj
fig.canvas.callbacks.connect('pick_event', on_pick)
plt.show()
当我运行此程序时,收到错误:QCoreApplication::exec: The event loop is already running
。
可以matplotlib
执行我想做的事情吗?
(最终目标是将此交互式图形放在panel
浏览器窗口中,但我现在只满足于从命令行运行matplotlib
。)
推荐答案
我想出了如何绘制新图形。它只需要图形和轴的on_pick
中的唯一名称,而不仅仅是plt
中的唯一名称。
def on_pick(event):
my_fig, my_ax = plt.subplots() # New plot with unique name
my_ax.scatter([1, 2, 3, 4], [5, 6, 7, 8]) # Make the scatterplot
my_fig.show() # Show the plot
这篇关于单击matplotlib散点图可以显示另一个基于点的元数据的图形。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:单击matplotlib散点图可以显示另一个基于点的元数据的图形。


猜你喜欢
- padding='same' 转换为 PyTorch padding=# 2022-01-01
- pytorch 中的自适应池是如何工作的? 2022-07-12
- 如何将一个类的函数分成多个文件? 2022-01-01
- 如何在 python3 中将 OrderedDict 转换为常规字典 2022-01-01
- 如何在 Python 的元组列表中对每个元组中的第一个值求和? 2022-01-01
- 使用Heroku上托管的Selenium登录Instagram时,找不到元素';用户名'; 2022-01-01
- python-m http.server 443--使用SSL? 2022-01-01
- 沿轴计算直方图 2022-01-01
- python check_output 失败,退出状态为 1,但 Popen 适用于相同的命令 2022-01-01
- 分析异常:路径不存在:dbfs:/databricks/python/lib/python3.7/site-packages/sampleFolder/data; 2022-01-01