标签: holoviews

更改 Pandas 绘图后端以获得交互式绘图而不是 matplotlib 静态绘图

当我使用 Pandas 时,df.plot()它有 matplotlib 作为默认绘图后端。但这会创建静态图。

我想要交互式绘图,所以我必须更改熊猫绘图背景。

当我使用 .plot() 时,如何更改 Pandas 的绘图后端以使用不同的库来创建我的绘图?

python pandas holoviews pandas-bokeh hvplot

15
推荐指数
3
解决办法
9526
查看次数

当另一个选择小部件更改时,如何自动更新下拉选择小部件?(Python 面板 pyviz)

我有一个 Select 小部件,当另一个 Select 小部件更改时,它应该提供不同的选项列表,因此只要其他 Select 小部件发生更改,它就会更新。我如何在下面的示例代码中执行此操作?

根据另一个下拉菜单的变化选择下拉菜单

 _countries = {
    'Africa': ['Ghana', 'Togo', 'South Africa'],
    'Asia'  : ['China', 'Thailand', 'Japan'],
    'Europe': ['Austria', 'Bulgaria', 'Greece']
}

continent = pn.widgets.Select(
    value='Asia', 
    options=['Africa', 'Asia', 'Europe']
)

country = pn.widgets.Select(
    value=_countries[continent.value][0], 
    options=_countries[continent.value]
)

@pn.depends(continent.param.value)
def _update_countries(continent):
    countries = _countries[continent]
    country.options = countries
    country.value = countries[0]

pn.Row(continent, country)
Run Code Online (Sandbox Code Playgroud)

python holoviews pyviz holoviz panel-pyviz

9
推荐指数
1
解决办法
2094
查看次数

如何控制 Holoviews Holomap 图的图例位置?

我正在尝试在全息视图中创建一个 Holomap 图形,该图形在图的顶部包含一个图例。

配置选项“legend_position”适用于非全息图(下面的“example1.html”),但不适用于全息图(下面的“example2.html”)。

import pandas as pd
import holoviews as hv

df = pd.DataFrame(dict(x=[1, 2], y1=[0, 1], y2=[1, 0], y3=[0.8, 0.8], y4=[0.2,0.2]))
curve1 = hv.Curve(df, 'x', 'y1', label='curve1').opts(ylabel='y')
curve2 = hv.Curve(df, 'x', 'y2', label='curve2').opts(ylabel='y')
curve3 = hv.Curve(df, 'x', 'y3', label='curve3').opts(ylabel='y')
curve4 = hv.Curve(df, 'x', 'y4', label='curve4').opts(ylabel='y')

cc12 = (curve1 * curve2).opts(legend_position='top')
hv.save(cc12, "example1.html")

cc34 = (curve3 * curve4).opts(legend_position='top')
hm = hv.HoloMap({'a':cc12, 'b':cc34}, kdims=["option"])
hm = hm.opts(legend_position='top')
hv.save(hm, "example2.html")
Run Code Online (Sandbox Code Playgroud)

我认为这与在全息图案例中不允许在情节之外的图例位置有关。所以问题的答案可能只是“它不应该工作”。问题在于,对于某些绘图,默认图例与曲线重叠,使曲线难以解释。

python bokeh holoviews

8
推荐指数
1
解决办法
1770
查看次数

使用全息视图设置x和y标签

我想将全息图上的数字上的x和y轴上的标签更改为内部变量名称以外的内容.似乎影响轴标签的典型方法是将变量名称本身更改为标签.如果您想要复杂的标签,这是相当不方便的,特别是如果您经常从其他复杂数据对象(如pandas数据帧)进行转换.

是否有通用的方法:(A)在绘制图形时或之后更改图形的x和y标签,或者(B)为变量名称设置人类可读的别名?

python plot axis-labels holoviews

7
推荐指数
1
解决办法
2687
查看次数

带有散景的 Holoview 不显示图

我正在尝试创建一个环境,在其中我使用 PyCharm 开发 Python 代码,同时使用全息视图和散景创建交互式图表。

我按照Holoview Introduction 中的步骤操作,它在 Jupyter notebook 中工作 - 图表确实具有很好的交互性。但是,当我在 PyCharm 的 Python 控制台中运行相同的代码时,没有显示图表或浏览器。

相比之下,当我直接调用 bokeh 的方法时,如本例所示,浏览器会启动,我可以交互地操作图表。我想使用全息视图(+bokeh)来实现这一点。

非常感谢您的帮助。

我的图书馆:

  • 蟒蛇 3.4.5
  • 全息视图 1.8.1
  • 散景 0.12.6
  • 参数 1.5.1
  • 蟒蛇 6.1.0
  • jupyter 1.0.0
  • 熊猫 0.20.3
  • 麻木 1.13.1
  • scipy 0.19.1

interactive data-visualization pycharm python-3.x holoviews

7
推荐指数
2
解决办法
5023
查看次数

如何用python绘制可读的,最好是交互式的网络图?

我正在尝试绘制运行脚本的任何网络的图形。我使用scapy收集数据包,并希望每台计算机通信有一个节点,每个连接有一个边缘。

问题是我找不到在屏幕上足够形象地显示图形的方法。到目前为止,将networkx与matlib.pyplot结合使用可带来最佳结果,但看起来仍然相当随机且混乱,标签难以读取,节点相互重叠,等等。最好还具有与图进行交互的能力-移动节点,将鼠标悬停在节点/边上以获得更多信息,放大或什至将节点群集在一起,以便在单击群集时可以看到由哪些节点组成集群。

由于分析网络数据并向图中添加节点和边将很麻烦,因此我在这里仅添加相关部分(实际上显示了我构建的图的部分):

pos = nx.spring_layout(Graph, scale=2)
edge_labels = nx.get_edge_attributes(Graph, "Protocol")
nx.draw(Graph,pos, with_labels=True, node_size=600, font_size=8, font_weight='bold')
nx.draw_networkx_edge_labels(Graph, pos, edge_labels=edge_labels, font_size=8)
plt.show()
Run Code Online (Sandbox Code Playgroud)

(我将网络导入为nx,将matplotlib.pyplot导入为plt)

我还尝试了graphviz,plotty和bokeh,但无法真正使它们正常工作,在对Google进行故障排除后,我觉得无论如何他们都无法解决我的问题,我还尝试了AdjustText-但我无法设法使其适应我的需求代码以任何方式(找不到如何获取图形的text属性)和Holoviews-但是无论我尝试什么(即使我从其站点复制并粘贴示例),它都拒绝显示图像-任一python都表示'%opts ...'是无效的语法,或者如果我尝试以其他方式更改选项,则代码将一直运行直到结束并且在屏幕上不显示任何内容。

该图如下所示: 这是图的样子

我在网上找到了很多局部解决方案,所以它们都不起作用,有人有全面的解决方案吗?

python visualization data-visualization networkx holoviews

7
推荐指数
1
解决办法
2614
查看次数

使用 holoviews/hvplot 创建绘图网格并设置最大列数

我想使用 Holoviews/hvplot 基于一维将多个数据绘制到网格中,其中包含多个唯一的数据点。

考虑这个例子:

import seaborn as sns
import hvplot.pandas

iris = sns.load_dataset('iris')
plot = iris.hvplot.scatter(x="sepal_length", y="sepal_width", col="species")
hvplot.show(plot)
Run Code Online (Sandbox Code Playgroud)

上面的代码根据鸢尾花数据集的物种部分创建了几个图,结果如下图:
列太多的 hvplot 网格空间示例

但现在想象一下,这里不是 3 个不同的物种,而是 20 个。情节会变得很宽,所以我想在几个情节之后打破界限。但我找不到任何“最大列”参数。普通网格需要另一列来定义我没有的行。

任何建议都会有所帮助。

python holoviews hvplot holoviz

7
推荐指数
1
解决办法
4249
查看次数

Holoviews 图表在组合和输出时共享轴

我正在使用 Holoviews 构建图表仪表板。其中一些图表在 y 轴上有百分比,而其他图表有总和/计数等。当我尝试将我创建的所有图表输出到 html 文件时,所有图表都会更改它们的 y 轴以匹配第一个图表的轴我的图表列表。

例如:

  • 图表 1 是一个总和,值从 0 到 1000
  • 图 2 是 %
  • 图 3 是 %

当我使用以下方法在全息视图中组合这些图表时:

  • 图表 = 图表 1 + 图表 2 + 图表 3

图 2 和图 3 的 y 轴与图 1 相同。

有谁知道为什么会发生这种情况以及我如何解决它,以便所有图表保持其各自的轴与它们试图表示的内容相关。

谢谢!

python holoviews holoviz

7
推荐指数
1
解决办法
1190
查看次数

用全息视图绘制多条线

我有一个 df 看起来像这样:

data = {'Cumulative': {0: 4, 1: 18, 2: 24, 3: 24, 4: 4, 5: 20, 6: 32, 7: 42},  'Id': {0: 1, 1: 1, 2: 1, 3: 1, 4: 2, 5: 2, 6: 2, 7: 2},  'Order': {0: '1-1',   1: '1-2',   2: '1-3',   3: '1-4',   4: '1-1',   5: '1-2',   6: '1-3',   7: '1-4'},  'Period': {0: 1, 1: 2, 2: 3, 3: 4, 4: 1, 5: 2, 6: 3, 7: 4},  'Time': {0: '1-1',   1: '1-2',   2: '1-3', …
Run Code Online (Sandbox Code Playgroud)

python bokeh holoviews

6
推荐指数
1
解决办法
3238
查看次数

Holoviews Hovertool 显示额外行?

我有一个数据集,我想在 X 轴上绘制具有 2 个不同变量的绘图(在 2 个不同的图中),但我想将其他值放入 Hovertool

from io import StringIO
import pandas as pd

data = """,item_id,start,station,rejects
0,item1,2019-10-14 19:00:00,assembly,4.297994269340974
1,item1,2019-10-14 19:00:00,ST1,0.20546537908362442
2,item1,2019-10-14 19:00:00,ST2,0.494539460127756
3,item1,2019-10-14 19:00:00,ST3,0.6892230576441103
4,item2,2019-10-14 23:30:00,assembly,4.432249894470241
5,item2,2019-10-14 23:30:00,ST1,0.19071837253655435
6,item2,2019-10-14 23:30:00,ST2,0.7651434643995749
7,item2,2019-10-14 23:30:00,ST3,0.7748600947051227
8,item3,2019-10-15 04:00:00,assembly,3.55576079427384
9,item3,2019-10-15 04:00:00,ST1,0.37002775208140615
10,item3,2019-10-19 04:00:00,ST2,0.7195914577530177
11,item3,2019-10-19 04:00:00,ST3,0.492379835873388
12,item4,2019-10-19 10:30:00,assembly,4.02656704026567
13,item4,2019-10-19 10:30:00,ST1,0.22926219258024177
14,item4,2019-10-19 10:30:00,ST2,0.690376569037657
15,item4,2019-10-19 10:30:00,ST3,0.838745695410320"""

data_reduced = pd.read_csv(StringIO(data), parse_dates=["start"], index_col=0)
Run Code Online (Sandbox Code Playgroud)

我想生成一个图表,其中item_idx 轴为 ,startx 轴为日期。我想跟踪每个站的废品以及装配的组合。

import holoviews as hv
import bokeh
from holoviews import opts
hv.extension('bokeh')
bokeh.plotting.output_notebook()

def plot(data_reduced, x_axis="item_id"):
    x_label …
Run Code Online (Sandbox Code Playgroud)

python holoviews

6
推荐指数
1
解决办法
1259
查看次数