目录网站模板,龙岩市城乡规划建设局网站,产品代理网,网站制作中企动力优到本次讲座结束时#xff0c;你将能够#xff1a;
使用Polars的内部plot方法从Polars创建图表使用外部绘图库从Polars创建图表了解这些库如何支持Polars
通常#xff0c;需要可视化库的最新版本来实现最大程度的兼容性
import polars as plimport hvplot as hv
import ma…到本次讲座结束时你将能够
使用Polars的内部plot方法从Polars创建图表使用外部绘图库从Polars创建图表了解这些库如何支持Polars
通常需要可视化库的最新版本来实现最大程度的兼容性
import polars as plimport hvplot as hv
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
import altair as alt
import vegafusion as vf 为Altair启用vegafusion
解释
Altair 是一个基于 Python 的声明式统计可视化库。它允许你用简洁的语法创建复杂的交互式图表。Altair 生成的图表基于 Vega-Lite 规范这是一种用于描述数据可视化的 JSON 格式。Vegafusion 是一个优化工具旨在加速 Altair 图表的渲染速度特别是在处理大数据集时。它通过在服务器端执行更多的数据处理和渲染工作从而减轻客户端浏览器的负担使图表响应更快、更流畅。
在使用 Altair 进行数据可视化时我们一般要激活或配置 Vegafusion 来优化图表的性能。具体来说这意味着当你在 Polars 或其他环境中使用 Altair 创建图表时Vegafusion 会在后台工作确保图表加载速度快即使数据量很大也能保持良好的用户体验。
vf.enable() # 启用vegafusioncsv_file ../data/titanic.csv
df pl.read_csv(csv_file)
df.head(3)shape: (3, 15)
┌──────────┬────────┬────────┬──────┬───┬──────┬─────────────┬───────┬───────┐
│ survived ┆ pclass ┆ sex ┆ age ┆ … ┆ deck ┆ embark_town ┆ alive ┆ alone │
│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ str ┆ f64 ┆ ┆ str ┆ str ┆ str ┆ bool │
╞══════════╪════════╪════════╪══════╪═══╪══════╪═════════════╪═══════╪═══════╡
│ 0 ┆ 3 ┆ male ┆ 22.0 ┆ … ┆ null ┆ Southampton ┆ no ┆ false │
│ 1 ┆ 1 ┆ female ┆ 38.0 ┆ … ┆ C ┆ Cherbourg ┆ yes ┆ false │
│ 1 ┆ 3 ┆ female ┆ 26.0 ┆ … ┆ null ┆ Southampton ┆ yes ┆ true │
└──────────┴────────┴────────┴──────┴───┴──────┴─────────────┴───────┴───────┘ 我们首先通过创建一个简单的条形图来查看是否可以直接将Polars的DataFrame传递给每个绘图库。接下来我们将考虑从Polars与每个库协作时需要注意的其他一些要点。
条形图
我们首先统计每个乘客等级中的乘客数量。有关此处使用的方法的更多信息请参阅课程中关于统计和聚合的部分。
passenger_class_counts_df (df[pclass].value_counts().sort(pclass)
)passenger_class_counts_dfshape: (3, 2)
┌────────┬───────┐
│ pclass ┆ count │
│ --- ┆ --- │
│ i64 ┆ u32 │
╞════════╪═══════╡
│ 1 ┆ 216 │
│ 2 ┆ 184 │
│ 3 ┆ 491 │
└────────┴───────┘ 使用hvPlot内置绘图
DataFrame有一个内置的.plot方法该方法将DataFrame传递给hvPlot库
注释
Polars 数据库框架直接集成了 hvPlot 这个绘图工具使得用户可以直接在 Polars 的 DataFrame 上进行数据可视化而无需额外安装或导入其他专门的绘图库尽管 hvPlot 本身仍需要被安装。
hvPlot 是一个用于快速生成高质量图表的 Python 库它构建在 HoloViews 和 Bokeh 之上提供了非常直观的 API使得从数据帧到图表的转换变得简单且强大。它支持多种数据源包括 Pandas DataFrame 和 Series。
在 Polars 中hvPlot 的功能已经被内化了用户可以直接在 Polars DataFrame 上调用 hvPlot 的方法来创建图表无需像以前那样先将数据转换为 Pandas DataFrame 或者单独使用 hvPlot 的函数。
passenger_class_counts_df.plot.bar(xpclass,ycount
)
hvPlot 是对底层绘图库的封装。默认情况下它使用 Bokeh 库来生成交互式图表这些图表在右侧包含控件可以 在我们悬停在数据上时添加描述数据的工具提示支持平移和缩放有一个重置按钮以恢复到原始视图
在 JupyterLab 中图表会自动显示。但如果你在使用 IPython 终端hvPlot 也可以启动一个临时服务器在浏览器中显示图表只要你 首先创建一个图表对象并将其分配给变量 p调用 hv.show(p)
p (passenger_class_counts_df.plot.bar(xpclass,ycount))hv.show(p) 在这个例子中我们根据乘客等级pclass的颜色进行散点图绘制以年龄age为横坐标票价fare为纵坐标并控制图表的宽度。
p (df.plot.scatter(xage,yfare,colorpclass, width500)
)hv.show(p) 然而用于 pclass 的颜色映射并不是很有用因为它将 pclass 的整数视为连续数值而不是离散的分类值这是不同绘图库中常见的现象。
在绘图之前我们将 pclass 转换为字符串以获得更好的颜色映射。
p (df.with_columns(pl.col(pclass).cast(pl.Utf8)).plot.scatter(xage,yfare,colorpclass, )
)hv.show(p) 我们可以使用 cmap 参数明确控制所使用的颜色映射。可用的颜色映射设置在这里:
https://holoviews.org/user_guide/Colormaps.html
请注意您选择的颜色映射必须与您正在使用的 hvPlot 绘图后端默认为 Bokeh相匹配。 Polars简明基础教程系列
Polars简明基础教程十二可视化(二)
Polars简明基础教程十一可视化(一)
Polars简明基础教程十Numpy和Pandas的相互转换2
Polars简明基础教程九Numpy和Pandas的相互转换1
Polars简明基础教程八Series 和 DataFrame 以及它们之间的转换_B
Polars简明基础教程七Series 和 DataFrame 以及它们之间的转换_A
Polars简明基础教程六什么是Polars的“DataFrame数据框_下”
Polars简明基础教程五什么是Polars的“DataFrame数据框_上”
Polars简明基础教程四懒惰模式 2评估查询
Polars简明基础教程三懒惰模式 1引入懒惰模式续
Polars简明基础教程二懒惰模式 1引入懒惰模式
Polars简明基础教程一Polars快速入门