标签: hvplot

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

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

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

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

python pandas holoviews pandas-bokeh hvplot

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

如何在 hvPlot 图中禁用科学记数法?

我今天刚刚开始使用 hvPlot,作为面板的一部分。

\n

我很难弄清楚如何在我的图中禁用科学记数法。例如,这是一个简单的条形图。轴和工具尖采用科学记数法。如何将格式更改为简单 int?

\n

在此输入图像描述

\n

我正在向非数字和非技术管理人员展示这一点。他们宁愿只看到基本整数,而我不想向他们解释科学计数法是什么。

\n

我在文档中找不到任何可以帮助我的内容:https ://hvplot.holoviz.org/user_guide/Customization.html

\n

I\xe2\x80\x99ve 还尝试拼凑 Bokeh 文档中的建议。

\n

我无法弄清楚\xe2\x80\x99。请帮忙!谢谢

\n

我的简单 df:

\n
   local_date      amount\n0      Jan 19   506124.98\n1      Feb 19   536687.28\n2      Mar 19   652279.31\n3      Apr 19   629440.06\n4      May 19   703527.00\n5      Jun 19   724234.08\n6      Jul 19   733413.32\n7      Aug 19   758647.44\n8      Sep 19   782676.16\n9      Oct 19   833674.28\n10     Nov 19   864649.74\n11     Dec 19   849920.47\n12     Jan 20   857732.52\n13     Feb 20   927399.50\n14     Mar 20  1152440.49\n15     Apr 20  1285779.35\n16     May 20  1431744.76\n17     Jun 20  1351893.95\n18     Jul …
Run Code Online (Sandbox Code Playgroud)

python bokeh hvplot holoviz

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

使用 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 按分类数据散点图颜色

我一直在尝试了解如何完成绘制两个数据集(每个数据集具有不同颜色)这一非常简单的任务,但我在网上发现的任何内容似乎都无法做到这一点。这是一些示例代码:

import pandas as pd
import numpy as np
import holoviews as hv
from holoviews import opts
hv.extension('bokeh')

ds1x = np.random.randn(1000)
ds1y = np.random.randn(1000)
ds2x = np.random.randn(1000) * 1.5
ds2y = np.random.randn(1000) + 1

ds1 = pd.DataFrame({'dsx' : ds1x, 'dsy' : ds1y})
ds2 = pd.DataFrame({'dsx' : ds2x, 'dsy' : ds2y})
ds1['source'] = ['ds1'] * len(ds1.index)
ds2['source'] = ['ds2'] * len(ds2.index)

ds = pd.concat([ds1, ds2])
Run Code Online (Sandbox Code Playgroud)

目标是在单个框架中生成两个数据集,并用一个分类列来跟踪源。然后我尝试绘制散点图。

scatter = hv.Scatter(ds, 'dsx', 'dsy')
scatter
Run Code Online (Sandbox Code Playgroud)

这按预期工作。但我似乎无法理解如何根据source列对两个数据集进行不同的着色。我尝试了以下方法:

scatter = hv.Scatter(ds, 'dsx', 'dsy', color='source') …

python holoviews hvplot

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

设置 hvplots 的默认选项

我想为 hvplots 生成的图设置默认选项。

通常在全息视图中我会这样做来为每个图设置默认值:

import holoviews as hv
from holoviews import opts
hv.extension('bokeh')
opts.defaults(opts.Curve( height=400, width=900 ,show_grid=True))
Run Code Online (Sandbox Code Playgroud)

现在我正在使用 hvplots,导入已成为基于 xarray 的绘图的以下内容

import xarray as xr
import hvplot.xarray
Run Code Online (Sandbox Code Playgroud)

如果我有一个 xarray 数据集并且我想绘制其中一个维度,那么我使用这个

ds.myDims.hvplot()
Run Code Online (Sandbox Code Playgroud)

然而,这给出了一个具有默认宽度且没有网格线的图。要添加它,我需要指定绘图的选项。

ds.myDims.hvplot(height=400, width=900,grid=True)
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想全局设置高度、宽度、网格等,就像在全息视图中一样,所以我不必为每个绘图指定它。

python holoviews hvplot

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

使用 Streamz 从 pandas DataFrame 进行流式传输

和包一起工作streamzhvplot为使用 pandas 数据帧绘制流数据提供支持。

例如,该streamz包有一个用于创建随机流数据帧的便利实用程序:

import hvplot.streamz
from streamz.dataframe import Random

sdf = Random(interval='200ms', freq='50ms')
sdf
# Stop the streaming with: sdf.stop()
Run Code Online (Sandbox Code Playgroud)

可以使用以下命令在流图表中简单地绘制此图hvplot

sdf.hvplot()
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法可以从预先存在的pandas数据帧中传输数据?

例如,我希望能够这样说:

import pandas as pd

df=pd.DataFrame({'a':range(0,100),'b':range(5,105)})

sdf = StreamingDataFrame(df, interval='200ms', freq='50ms')

Run Code Online (Sandbox Code Playgroud)

然后,我可以简单地使用预先存在的pandas数据帧中的示例数据,而不是使用随机示例数据。

pandas holoviews hvplot holoviz

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

使用 Holoviews 或 Hvplot 时将框缩放(或平移或滚轮缩放)设置为默认值

我的 hvplot 有默认的平移和滚轮缩放作为缩放和移动图形的方式。
但我希望框缩放成为我的图表中的默认值。
如何在 hvplot 或 Holoviews 中执行此操作?

import numpy as np
import pandas as pd
import holoviews as hv
import hvplot
import hvplot.pandas

df = pd.DataFrame(data=np.random.normal(size=[50, 2]), columns=['a', 'b'])
df_plot = df.hvplot.scatter(x='a', y='b')
Run Code Online (Sandbox Code Playgroud)

hvplot pan 是默认的活动工具

python holoviews hvplot holoviz

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

hvplot.box 中的不同颜色

以下代码生成链接图像。它生成的大部分是我想要的,但我希望 Real 和 Pred 之间的框颜色不同。我该如何使用 Holoviews 或 Hvplot 来做到这一点?

import hvplot.pandas
import pandas as pd
import numpy as np



df = pd.DataFrame(np.random.randn(20), columns=['Value'])
df['Source'] = ['Preds'] *10 +['Real'] * 10
df['Item'] = ['item1'] *5 + ['item2']*5 + ['item1'] *5 + ['item2']*5
df.hvplot.box(y='Value', by=['Item', 'Source'])
Run Code Online (Sandbox Code Playgroud)

我希望该图像的第一张图具有第二张图的风格

在此输入图像描述

python pandas holoviews hvplot

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

Holoviews:从分组条形图的 x 轴上删除变量名称

关于 HoloViews 分组(非堆叠)条形图的快速问题。如何删除 x 轴变量名称刻度,但将它们包含在图例中?

请参阅下面的示例:

没有图例和多余 xticks 的条形图

我想做以下事情:

  1. 对于红色框,删除刻度线“x”和“y”的名称
  2. 添加与各自颜色对齐的“x”和“y”图例。

代码如下:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
import holoviews as hv
pd.options.plotting.backend = 'holoviews'

df1 = pd.DataFrame({
    'x': np.random.rand(10), 
    'y': np.random.rand(10),
})

my_plot = df1.plot(kind='bar')
my_plot
Run Code Online (Sandbox Code Playgroud)

谢谢你!

python bar-chart bokeh holoviews hvplot

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

使用 hvplot/holoviews 更改分组条形图中条形的顺序

我尝试创建分组条形图,但无法弄清楚如何影响条形图的顺序。

给定这些示例数据:

import pandas as pd
import hvplot.pandas

df = pd.DataFrame({
    "lu": [200, 100, 10], 
    "le": [220, 80, 130], 
    "la": [60, 20, 15], 
    "group": [1, 2, 2],
})
df = df.groupby("group").sum()
Run Code Online (Sandbox Code Playgroud)

我想创建一个水平分组条形图,显示两个组 1 和 2 以及所有三列。列应按“le”、“la”和“lu”的顺序出现。

当然,我会尝试使用 Hvplot:

df.hvplot.barh(x = "group", y = ["le", "la", "lu"])
Run Code Online (Sandbox Code Playgroud)

这样我得到下面的结果: 分组条形图顺序错误 hvplot

Hvplot 似乎并不关心我添加列的顺序(调用df.hvplot.barh(x = "group", y = ["lu", "le", "la"])不会改变任何内容。Hvplot 似乎也不关心数据框中的原始顺序。

是否有任何选项可以影响条形的顺序?

python bokeh holoviews hvplot holoviz

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

标签 统计

hvplot ×10

holoviews ×9

python ×9

holoviz ×5

bokeh ×3

pandas ×3

bar-chart ×1

pandas-bokeh ×1