python - 将 Matplotlib 与 Dask 结合使用

标签 python pandas matplotlib dask dask-dataframe

假设我们有 pandas 数据帧 pd 和一个 dask 数据帧 dd。当我想用 matplotlib 绘制 pandas one 时,我可以轻松做到:

fig, ax = plt.subplots()
ax.bar(pd["series1"], pd["series2"])
fig.savefig(path)

但是,当我尝试对 dask 数据帧执行相同操作时,出现了 Type Errors,例如:

TypeError: Cannot interpret 'string[python]' as a data type

string[python] 只是一个示例,无论您的 dd["series1"] 数据类型是什么,都将在此处输入。

所以我的问题是:将 matplotlibdask 结合使用的正确方法是什么?将这两个库结合起来是否是个好主意?

最佳答案

使用 dask 而不是 pandas 的一个动机是数据的大小。因此,将 pandas DataFrame 与 dask DataFrame 交换可能不可行。想象一个散点图,这可能适用于 10K 点,但如果 dask 数据框是十亿行,那么普通的 matplotlib 散点图可能不是一个好主意(datashader 是一个更合适的工具)。

一些图形表示对数据的大小不太敏感,例如归一化条形图应该工作良好,只要类别的数量不随数据缩放。在这种情况下,最简单的解决方案是使用 dask 计算感兴趣的统计数据,然后再使用 pandas 绘制它们。

总结一下:我会考虑图表的性质,找出最好的工具/表示,如果它可以/应该用 matplotlib 完成,那么我会在 dask DataFrame 将缩减结果作为 pandas dataframe 并继续 matplotlib

关于python - 将 Matplotlib 与 Dask 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73000307/

相关文章:

python - 在列名python中的特定位置保留字符串

python - "Keyword cannot be an expression"

python - 为什么 y = [m*x + b for x in Months] 有效?

python - Django runserver错误: _frozen_importlib. _DeadlockError:由_ModuleLock ('django.test.signals'检测到死锁)在139824587568800

python - 我需要一个以正整数 (n) 开头并返回 2 的幂列表的函数,从 2 开始

Python Pandas Dataframe 复制并重新排序列

python - Matplotlib 添加文本,使其在点结束

python - 在绘图中创建填充

python - SQLAlchemy - 动态掩码对象中的值

python - 在Elasticsearch中按字段长度对查询进行排序