Plotly与Pandas和Cufflinks2025年3月17日 | 阅读 14 分钟 Plotly 是一个 Python 模块,用于创建图形,特别是交互式图形。它可以绘制各种图形和图表,包括直方图、箱线图、散点图和条形图。它主要用于金融分析和数据分析。Plotly 是一个交互式可视化库。 Cufflink 将 Plotly 与 Pandas 集成,以便直接从数据帧创建图形和图表。“Choropleth”一词指的是美国的地理绘图。使用分层地图绘制地球和其他许多事物的地图。 让我们使用 Plotly 和 Cufflinks 创建各种图表类型,例如箱线图、散点图等。 安装 Plotly 的命令 安装 Cufflink 的命令 代码 #1:显示数据帧程序 将要运行的程序如下 输出 下面程序的输出将是 Category Values 0 A 32 1 B 43 2 C 50 代码 #2:常规图输出 下面程序的输出将是 ![]() Pandas 是一个非常受欢迎的 Python 数据分析工具包。此外,它还支持自己的绘图功能。然而,Pandas 图形不提供交互式可视化。幸运的是,可以使用 Pandas 数据帧对象来创建 Plotly 的交互式和动态显示。 我们首先从简单的列表对象创建数据帧。 图形对象跟踪的 x 和 y 特性表示为数据帧列中的数据值。在此实例中,我们将使用 name 和 marks 列来创建条形跟踪。 ![]() 通过使用另一个名为 Cufflinks 的包,它可以直接与 Pandas 数据帧一起使用。 如果尚未安装 Cufflinks 包,请使用您喜欢的包管理器(例如 pip)进行安装。 要将 Cufflinks 设置为离线使用,请先导入它以及 Pandas 和 numpy 等其他库。 现在,您可以使用 Pandas 数据帧直接显示各种类型的图表,而不是像我们之前那样使用 graph_objs 模块中的 trace 和 figure 对象。 df.iplot(kind = 'bar', x = 'name', y = 'marks') 来自数据库的 Pandas 数据帧数据可以来自多种数据库,而不是 Python 列表,用于填充数据帧。 我们可以使用 Pandas 库的 read_csv() 方法从 CSV 文件中检索数据。 要将 Cufflinks 设置为离线使用,请先导入它以及 Pandas 和 numpy 等其他库。 Plotly 是一个交互式可视化库。Cufflink 将 Plotly 与 Pandas 集成,以便直接从数据帧创建图形和图表。“Choropleth”一词指的是美国的地理绘图。使用分层地图绘制地球和其他许多事物的地图。 Python 中的数据可视化通常,课程中只涵盖这两个库——matplotlib 和 seaborn。这些库包含允许我们创建各种图表的工具,包括折线图、饼图、条形图、箱线图等。当我第一次了解 Plotly 和 Cufflinks 时,我也有同样的想法。 什么是 Plotlib?Plotly 是一个开源图表包,提供交互式绘图功能。该库支持多种编程语言,包括 Python、R、MATLAB、Arduino 和 REST。 另一个名为 Cufflink 的 Python 模块将 Plotly 与 Pandas 连接起来,以便可以轻松地在数据帧上创建图表。本质上,它就像一个插件。使用 Plotly,我们还可以创建地理、科学、统计和金融数据上的动画和交互式图形。 数据集在开始实现 Plotly 之前,我们需要先了解我们的数据集以及可以进行哪些操作来使用各种图表进行信息可视化。 我们从雅虎财经获取了为期 6 年(2016-2021 年)的 Tata Cars 股票价格数据集。该数据集有 7 列,包括日期、收盘价、开盘价、最高价、最低价、调整后收盘价和交易量。然后我们添加了两个列,即 Year 和 Month,以便在绘图时提供帮助。下面的代码是这样写的。 程序将要运行的程序如下 输出 下面程序的输出将是 ![]() 基本图表1. 折线图从上面的例子可以看出,Plotly 提供了多种修改可视化的选项。在图表的右上角可以找到十个具有不同功能的按钮。 条形图 2. 气泡图如今,Pandas 是大多数数据科学家用来处理结构化数据集(表格)的库(加载、修改等)。 除了数据管理和操作功能外,它还提供了非常实用的数据可视化功能。通过在数据帧上执行 plot() 方法,可以直接创建图表。通过调用带有适当参数的“plot()”,我们只需一行代码即可快速构建散点图、条形图、折线图等图表。 在后台,Pandas 数据可视化使用了 matplotlib 包。由于 matplotlib 生成的每个图都是静态的,因此使用 Pandas 数据帧的 '.plot()' API 生成的任何图表也将是静态的。 但我们生活在一个互动时代。在现代世界,几乎所有东西都是互动的(图表、应用程序、仪表板等)。 Plotly、Bokeh、Holoviews、Bqplot、Altair 等 Python 数据可视化包可以生成交互式图表。如果可以直接从 Pandas 数据帧生成交互式图表,那将非常有益。 令我们惊讶的是,一个名为“cufflinks”的 Python 包就是为此目的而创建的。只需一行代码,它就允许我们基于 Plotly 平台创建交互式图表。 本教程如何帮助您?本教程包括使用 Python 模块“cufflinks”创建交互式数据可视化的说明。Cufflinks 构建在另一个数据可视化库 Plotly 之上。Cufflinks 的主要目标是通过提供与 Pandas 数据帧函数“plot()”相同的 API 来使数据可视化变得更容易,同时使用 Plotly 创建交互式图表。它提供了两个与 Pandas 相同的“plot()”API 的方法。 “iplot()”:此函数提供了几乎与 plot() 相同的参数,使得熟悉 plot() 的人更容易适应它。 您想了解所有“iplot()”函数参数吗? 要在 Jupyter Notebook 或 IPython shell 中了解“iplot()”函数接受的所有参数,请使用 help(df.iplot) 命令。因为这是一个通用的函数,可以制作许多图表,所以它包含很多参数。 “figure()”:它与 iplot() 的唯一区别是它会生成一个 Plotly Figure 对象,如果我们熟悉 Plotly,可以对其进行进一步自定义。 在本教程中,我们将主要关注使用 Cufflinks 的 'iplot()' 方法从 Pandas 数据帧创建各种交互式 Plotly 图表。所有数据集最初都加载为 Pandas 数据帧。 除了绘制图表外,我们还描述了许多主题和样式选项,以增强图表的可视吸引力(外观和感觉)。 但是,缺乏前端工程技能的 Python 用户可能会在交互式可视化方面遇到困难,因为许多库(如 D3、chart.js)都需要了解 JavaScript。这时 Plotly 和 Cufflinks 就派上用场了。 Plotly 是一个构建在 d3.js 之上的图表框架,由于另一个名为 Cufflinks 的包,它可以直接与 Pandas 数据帧一起使用。在本简短介绍中,我们将演示如何将交互式 Plotly 图与 Pandas 数据帧一起使用。为了简单起见,我们将使用著名的泰坦尼克号数据集,以及通过 Anaconda Distribution 从 Python 3.6.4 安装的 Jupyter Notebook。 Plotly 版本Plotly 为 3.3.0 版本,Cufflinks 为 0.14.5 版本。您可以使用 Anaconda Prompt(或使用 OS X 或 Ubuntu 时的 Terminal)中的以下命令安装 Plotly。 加载库我们将首先加载 Pandas、Plotly 和 Cufflinks 的库。在本主题中,我们将使用离线模式,因为它足以用于 Jupyter Notebook。 加载数据集正如我们所指定的那样,我们将使用泰坦尼克号数据集,您可以直接从 Kaggle 链接获取该数据集。将只使用 train.csv 文件。 直方图为了检查特征分布,在此例中是“Age”特征,可以使用直方图。通过 (dataframe["columnname"]) 语法,我们只需选择一列,然后添加 .iplot 函数。下面的示例显示了如何指定 bin 大小、主题、标题和轴名称。使用“help(df.iplot)”命令,您可以查看 iplot 参数的所有参数。 例如,我们将以相同的图表显示男性和女性旅行者的年龄。 热力图热力图有很多应用,但作为说明,我们将检查数据集中属性之间的关联。 箱线图箱线图对于快速确定数据的偏度、异常值或四分位数范围非常有用。现在将使用箱线图显示泰坦尼克号上每个船舱等级的“Fare”分布。 散点图散点图的主要目的是检查两个定量变量之间的关系。为了可视化“Fare”和“Age”变量,我们将使用散点图。“Categories”使我们能够以不同的颜色显示所选特征(在此例中为乘客的性别)的变量。 友情提示: “categories”选项必须是 float64 或 string 类型的列。 气泡图我们可以使用气泡图同时查看多个变量关系。此外,我们可以为悬停文本列指定“text”参数。 条形图此外,它们还可以堆叠起来以展示各种不同的效果。为了显示按性别划分的幸存者人数,我们将创建一个条形图。 Plotly & CufflinksPlotly 是一个开源的、基于浏览器的图形库,可实现交互式绘图。 另一个将 Pandas 数据帧连接到 Plotly 的包称为 Cufflinks,它使用户能够直接从 Pandas 生成可视化。对于简单的绘图,该库将 Plotly 的强大功能与 Pandas 的灵活性结合在一起。 动手可视化对于熟悉 Pandas 绘图的人来说,这可能非常简单,因为我们所要做的就是导入几个库,并将 Pandas 的 plot 函数重命名为 iplot,意思是交互式图。让我们看几个例子。 导入必要的库 由于其出色的支持,您可能希望将 Jupyter Notebook 与 iplots 一起使用。 导入数据集考虑一小组随机数。Plotly 提供了多种修改可视化的选项。在创建的图表的右上角可以看到十个具有不同功能的按钮。我们有一个按钮可以将图表下载为 PNG 图像,还有切换按钮可以更改鼠标悬停模式,以及放大和缩小按钮,还有缩放模式和拖动模式。 图像右下角是导出图形到 Plotly Web 画廊的选项。 如何创建折线图?图表可以放大和缩小。要查看值,请将鼠标光标移到图表上。要查看列的特定图表,请单击图例中的列名称。 在图表的右侧,可以看到各种与图表相关的选项。下面是代码片段。 如何创建散点图?通过指定 'kind' 为 scatter 并调用 'iplot' 方法,可以创建交互式散点图。也可以根据散点图的创建方式指定其 x 和 y 值。 默认情况下,Plotly 使用线条连接所有点。因此,将“mode”指定为“markers”以查看没有连接线的数据点。 如何创建条形图?通过将 'kind' 选项的值指定为 'bar',可以创建此图表。还提供了 x 和 y 轴的值。 在条形图上,可以调用 count() 和 sum() 等各种函数。 如何创建箱线图?通过将 'box' 值添加到 'kind' 参数来创建箱线图。当鼠标悬停在图表上时,会显示四分位数、中位数、最小值和最大值。通过单击图例中的列名称来选择要显示的内容。 如何创建曲面图?通过将“kind”指定为“surface”,它将创建一个曲面图。可以从不同角度进行旋转以进行查看。 还可以使用 'colorscale' 选项修改颜色方案。多种颜色有缩写,例如红色 (rd)、蓝色 (bu) 和黄色 (yl)。 如何创建直方图?通过将 'kind' 指定为 'hist',可以为数据集的特定列创建直方图。也可以在此处一起指定 bin。 如果对整个数据帧使用 'hist' 命令,则每个列的直方图将重叠。通过单击图例,您可以选择要显示哪些列。 如何创建散点图(spread plots)?显示所选列的折线图。此外,还会显示一个相对绘制的散点图(spread plot)。这通常用于股票数据分析。通过将 'spread' 关键字传递给 'kind' 参数可以实现此图表。 如何创建气泡图?散点图和此布局相似。唯一的区别是标记的大小现在将根据参数变化。要创建此图,使用“kind”一词来指代气泡。与散点图一样,传递 x 和 y 轴值。通过将列名添加到 'size' 选项,还可以描述标记的大小取决于另一列。此类型的图用于表示 GDP。 如何创建散点图矩阵?Seaborn 库中的 pair plot 与此计划类似。从数据集中调用 'scatter_matrix' 方法。列必须包含数字才能构建散点图矩阵。 您可以使用 Plotly(一个灵活且交互式的数据可视化框架)来创建精美、交互式且可共享的可视化。只需几行代码,并借助流行的 Pandas 数据操作包和 Pandas 的 Cufflinks 扩展,您就可以生成有效的数据可视化。 什么是 Plotly?Plotly 是一个流行的开源 Python 工具包,用于创建交互式数据可视化。它支持散点图、折线图、条形图、饼图等图表样式。通过添加缩放、平移和悬停提示等交互元素,可以改进用户体验,Plotly 可视化效果高度可配置。 Cufflinks 如何工作?Cufflinks 是一个连接 Pandas 和 Plotly 的库。它使您能够从 Pandas DataFrame 快速轻松地生成 Plotly 可视化。使用 Cufflinks 可以更轻松地创建交互式图表,使得不熟悉 Plotly 复杂性的人也能轻松上手。 创建环境如果您之前没有安装过这些库,在使用 Plotly、Pandas 和 Cufflinks 之前应该安装它们。使用 pip,您可以安装它们。 安装后,您可以将这些库导入到您的 Python 脚本或 Jupyter Notebook 中。 使用 Pandas 加载数据首先将数据加载到 Pandas DataFrame 中。Pandas 支持各种数据格式,包括 CSV、Excel 和 SQL 数据库。以下是加载 CSV 文件的示例。 创建基本的 Plotly 可视化您可以使用 Cufflinks 直接从 Pandas DataFrame 创建基本的 Plotly 可视化。以下是创建简单折线图的示例。 将“column_name”替换为您要绘制的列。iplot 方法生成一个交互式 Plotly 图表,您可以进一步自定义。 创建交互式散点图Plotly 以其交互式功能而闻名。您可以使用 Plotly Express(已与 Cufflinks 集成)创建带有交互式工具提示的散点图。 将“x_column”、“y_column”和“category_column”替换为您 DataFrame 中的相应列名。此代码创建了一个散点图,其中每个类别都有不同的颜色,并在您将鼠标悬停在点上时显示数据详细信息的工具提示。 自定义可视化Plotly 允许您自定义可视化程序的每个方面。您可以修改标题、轴标签、图例等。以下是自定义 Plotly 图的示例。 保存和共享可视化您可以将 Plotly 可视化保存为独立的 HTML 文件,以便于共享。 此 HTML 文件包含交互式 Plotly 图表,可以与不需要安装 Python 或任何库的其他人共享。 强大的 d3.js 是开源 Plotly Python 模块的基础,该模块构建在 plotly.js 之上。我们将使用 Cufflinks,这是主要 Python Plotly 包的一个更精简的版本,它专门设计用于与 Pandas DataFrames 配合使用。 Cufflinks 比 Plotly、plotly.js 和 d3.js 更抽象,它允许我们在高级别使用 Python 代码,并利用 d3 的出色交互式图形功能。对于更深入的图表,Cufflinks 还可以通过核心 Plotly 库的功能进行扩展。 注意:Plotly,一家拥有多种产品和开源工具的图形公司,也是创建 Python 库的公司的名称。结论总之,结合 Plotly、Pandas 和 Cufflinks 是在 Python 中创建交互式数据可视化的强大有效的方法。这个工具集既可以供新手数据分析师使用,也可以供经验丰富的数据分析师使用,可以简化这个过程。以下是本次 1000 字介绍中讨论的主要思想的快速摘要。 Plotly 是一个灵活的 Python 库,用于构建交互式数据可视化。它提供了各种图表样式和自定义工具,以帮助您创建引人注目的教育性可视化。 Pandas 是一个知名的 Python 数据操作工具包。它为有效的数据管理和预处理提供了 DataFrame 和 Series,使其成为数据分析工作的关键工具。 Cufflinks:Cufflinks 是一个 Pandas 插件,可连接到 Plotly。它使从 Pandas DataFrames 生成 Plotly 可视化变得更加容易,代码量也更少。 环境设置:您可以使用 pip 安装 Cufflinks、Pandas 和 Plotly。安装后,将这些库导入到您的 Python 环境中即可开始。对于数据分析和可视化,这一步至关重要。 创建简单的 Plotly 可视化:Cufflinks 可以轻松创建简单的 Plotly 可视化。例如,使用 iplot 函数和所需的列,您可以构建折线图。 Plotly 的交互式功能在散点图中尤为突出。可以使用 Plotly Express(与 Cufflinks 集成)来创建它们。通过添加用于数据探索的工具提示和对数据点进行颜色编码,使您的散点图独一无二。 使用 Plotly 可以对可视化进行极大的修改。您可以更改标题、轴标签、图例和其他组件,以使您的图表符合您的特定需求。 可视化可以保存为独立的 HTML 文件,方便与他人共享交互式图表。 总而言之,Plotly、Pandas 和 Cufflinks 的组合为数据分析和可视化提供了一个简化的流程。无论您是研究复杂数据集的数据科学家,还是试图有效传达见解的数据分析师,这三个强大的工具都能让您创建出色且动态的数据可视化。通过学习这些技术,您可以最大化数据的价值并提高数据驱动决策的质量。 下一主题# |
我们请求您订阅我们的新闻通讯以获取最新更新。