赞
踩
我们可以使用 hv.extension 更改绘图后端。但是,我们不在此处运行此单元格,因为它会导致下面的 Matplotlib/Seaborn 图表无法渲染。
注释:
hvPlot 利用 HoloViews 库来构建图表,并且可以使用多个后端进行渲染,包括 Bokeh(默认)和 Matplotlib。
hv.extension
是一个函数,用于设置 hvPlot 的绘图后端。当你使用 hv.extension
指定一个后端时,比如 Bokeh 或 Matplotlib,hvPlot 将会使用这个后端来渲染所有后续的图表。
然而,在 Jupyter Notebook 或类似的环境中,当你设置了一个特定的后端,如 Bokeh,然后尝试渲染一个依赖于不同后端(如 Matplotlib)的图表时,后一个图表可能不会正确显示,因为它试图使用已经被设置为 Bokeh 的环境来渲染。这是因为 Jupyter Notebook 的输出环境被配置为了 Bokeh,而不再是 Matplotlib。
如果在某个点上设置后端为 Bokeh,那么接下来使用 Matplotlib 或 Seaborn(基于 Matplotlib 的绘图库)绘制的图表可能不会显示,除非你重新设置或重置后端。
为了避免这个问题,你可以在使用 hvPlot 之前或之后单独运行设置后端的代码,或者在不同的会话或内核中处理不同的后端。这确保了每个后端都在其适当的环境中运行,不会相互干扰。如果你在一个脚本中需要使用多种后端,你可能需要手动切换后端,或者使用独立的绘图区域来确保兼容性。
hv.extension('matplotlib')
可用的后端包括:
.plot 方法可用的绘图类型将随着时间的推移而发展。我们可以通过在 df.plot 上使用 Python 的 dir 函数来打印当前可用的方法列表,从而查看当前的可用列表。
- [el for el in dir(df.plot) if not el.startswith("_") ]
-
- area
- bar
- barh
- bivariate
- box
- dataset
- density
- errorbars
- explorer
- heatmap
- hexbin
- hist
- kde
- labels
- line
- ohlc
- paths
- points
- polygons
- scatter
- step
- table
- vectorfield
- violin
我们将在下面演示更多这些内容
我们创建一个简单的时间序列 DataFrame 来制作折线图
- p = (
- pl.DataFrame(
- {
- "time":[0,1,2,3,4],
- "val":[0,1,2,3,4],
-
- }
- )
- .plot
- .line(
- x="time",
- y="val"
- )
- )
-
- hv.show(p)
要制作多线图,你可以:
因此,无论是否在此处注释掉 y 行,我们都会得到相同的图表。
- p = (
- pl.DataFrame(
- {
- "time":[0,1,2,3,4],
- "val":[0.0,1,2,3,4],
- "vals2":[10.0,11,12,13,14]
-
- }
- )
- .plot
- .line(
- x="time",
- y=["val","vals2"]
- )
- )
-
- hv.show(p)
OHLC 是一种有用的图表类型,用于可视化股票走势。
默认情况下,OHLC 会假定索引或第一个日期时间列应映射到 x 轴,而前四个非日期时间列分别对应于 O(开盘价)、H(最高价)、L(最低价)和 C(收盘价)组件。
因此,默认调用 ohlc 相当于:
df.plot.ohlc('date', ['open', 'low', 'high', 'close'], grid=True)
我们现在来画一个简单的蜡烛图:
- import polars as pl
- import hvplot as hv
-
- data = [ ## 字段为:time, open, high,low,close
- (1., 10, 13, 5, 11),
- (2., 13, 17, 9, 12),
- (3., 13, 14, 11, 13),
- (4., 14, 15, 5, 11),
- (5., 15, 19, 8, 12),
- (6., 9, 15, 8, 10),
- ]
- df = pl.DataFrame(
- data,
- schema=['time','open','high','low','close'],
- orient="row"
- )
- p = df.plot.ohlc('time',['open','high','low','close'])
- hv.show(p)
Polars简明基础教程十:Numpy和Pandas的相互转换(2)
Polars简明基础教程九:Numpy和Pandas的相互转换(1)
Polars简明基础教程八:Series 和 DataFrame 以及它们之间的转换_B
Polars简明基础教程七:Series 和 DataFrame 以及它们之间的转换_A
Polars简明基础教程六:什么是Polars的“DataFrame(数据框)_下”
Polars简明基础教程五:什么是Polars的“DataFrame(数据框)_上”
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。