小编Dav*_*ave的帖子

面板行中的“matplotlib”可点击图

我已经弄清楚如何使matplotlib图表可单击,以便我可以单击一个点并根据该点的元数据创建一个新图,遵循此处的答案。

现在是时候将可点击的绘图放入Panel仪表板中了。明显的举动是将该数字添加到panel.Row. 虽然这显示了该图,但我没有得到交互性。

import matplotlib.pyplot as plt
import panel as pn

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):
    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() …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib data-science panel-pyviz

5
推荐指数
1
解决办法
1082
查看次数

Pandas 中的数据透视表以“整理”数据框

我有一组数字(我认为该格式使其成为数据透视表),我想将其转换为“整洁”的数据框。例如,我从左侧的变量 1、顶部的变量 2 和中间的感兴趣值开始,如下所示:

  X Y
A 1 2
B 3 4
Run Code Online (Sandbox Code Playgroud)

我想把它变成这样一个整洁的数据框:

V1 V2 value
A  X    1
A  Y    2
B  X    3
B  Y    4
Run Code Online (Sandbox Code Playgroud)

行和列顺序对我来说无关紧要,所以以下是完全可以接受的:

value V1 V2
  2    A  Y
  4    B  Y
  3    B  X
  1    A  X
Run Code Online (Sandbox Code Playgroud)

对于我的第一次尝试,它能够让我得到正确的最终答案,我遍历了行和列。这非常慢,我怀疑 Pandas 中的某些机器会使它运行得更快。

这似乎melt与我寻求的魔法很接近,但它并没有让我一路走到那里。第一个数组变成了这个:

   V2 value
0  X    1
1  X    2
2  Y    3
3  Y    4
Run Code Online (Sandbox Code Playgroud)

它摆脱了我的 V1 变量!

没有什么特别之处melt,所以我很乐意阅读使用其他方法的答案,特别是如果melt它并不比我的嵌套循环快多少,而另一个解决方案是。尽管如此,我怎样才能从那个数组转到我想要作为输出的那种整洁的数据框?

示例数据框:

df = pd.DataFrame({"X":[1,3], "Y":[2,4]},index=["A","B"])
Run Code Online (Sandbox Code Playgroud)

python pivot-table melt pandas

2
推荐指数
1
解决办法
439
查看次数