小编San*_*ord的帖子

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

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

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

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

python pandas holoviews pandas-bokeh hvplot

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

配置 SQLFluff 规则

我使用 SQLFluff 来确保公司的语法统一,并在 dbt 中运行模型之前减少错误警告。由于我们的语法与 SQLFluff 的语法不完全匹配,我想进行一些更改。

SQLFluff 提供的规则参考帮助我设置了内联忽略错误,如下面的代码(最后一行代码)所示。

所以我有两个问题,在 SQLFluff 规则参考的帮助下我也无法回答。

  1. 我想将规则L032设置为默认“false”,而无需每次在 SQL 中手动输入。

  2. 如何更改有关规则L016的行的最大长度?我想设置默认值,例如 150。

规则_L016

SELECT
    country.country_name,
    country.population,
    currency.currency_name,
    currency.currency_id,
    currency.strange_long_variable_name_which_is_too_long as not_so_long_variable_name
FROM country
LEFT JOIN currency
    USING (country) -- noqa: L032
Run Code Online (Sandbox Code Playgroud)

我试图通过规则参考来解决这个问题,但无法解决。非常感谢帮助!

sql postgresql dbt sqlfluff

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

当另一个选择小部件更改时,如何自动更新下拉选择小部件?(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
查看次数

SQLFluff 总是返回模板/解析错误

我正在尝试设置 sqlfluff,但对于我们所有的查询,它在运行时总是返回此值sqlfluff fix

[1 templating/parsing errors found]
Run Code Online (Sandbox Code Playgroud)

有什么方法可以强制它告诉我发生的错误吗?我尝试在最高详细级别上运行它,但没有记录任何有用的信息。

python sql sqlfluff

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

使用 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
查看次数

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
查看次数

使用 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
查看次数

如何在 HoloViews 中获取小部件“处理程序”

当使用基于 xArray 数据的 HoloViews 创建绘图 (QuadMesh) 时,任何缺失的维度都会自动创建滑块等小部件以方便数据探索。例如:

hv_ds = hv.Dataset(data)    
plot = hv_ds.to(hv.QuadMesh, kdims=["lon", "lat"], vdims="depth")
Run Code Online (Sandbox Code Playgroud)

由于数据包含 12 个月的数据,HoloViews 将根据经度和纬度创建 QuadMesh,使用深度作为值,然后提供一个滑块小部件来选择月份。它将把所有内容包装在一个 HoloMap 中,如下所示:

HoloMap containing 12 items of type QuadMesh
--------------------------------------------

Key Dimensions: 
     month: 1.0...12.0 
Deep Dimensions: 
     lon: -280.0...80.0 
     lat: -78.0...-44.6 
     depth: 3.5...4796.6 
Run Code Online (Sandbox Code Playgroud)

生成图

我想检索“月份滑块小部件”的值以更新另一个图,但我找不到访问它的方法。没有plot.get_widget_value()或类似的东西。有什么想法可以获取它的指针或处理程序吗?

python holoviews holoviz

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