使用 Python 中的 Plotly 制作折线图
Plotly 是一个交互式开源工具包,它使用户能够在 Python 数据可视化领域构建各种美观且智能的图表。折线图是最流行的图表形式之一,也是本文的主题。为了帮助您理解,我们将使用实际示例介绍如何使用 Plotly 制作折线图。
尽管我们主要关注折线图,但请记住,Plotly 是一个灵活的库,支持各种其他图表样式,提供无数机会用数据讲述引人入胜的故事。
Plotly 简要概述
强大的模块 Plotly 支持 Python 交互式和基于浏览器的图形生成。您可以创建复杂的图形,用户可以轻松修改这些图形,从而实现更彻底的数据探索体验。
使用 Plotly 在 Python 中制作折线图
可以使用折线图(通常称为线图)沿数字线显示数据。让我们开始使用 Plotly 在 Python 中制作折线图。
Plotly 安装
如果尚未安装 Plotly,请使用下面的 pip 命令进行安装:
pip install plotly
构建基本折线图
通过导入 Plotly Express 模块并利用 line() 函数(该函数接受多种形式的数据,如 Pandas DataFrames 或数组列表),您可以在 Plotly 中创建基本折线图。
使用 Plotly 制作折线图的实际示例
让我们继续介绍使用 Plotly 创建折线图的一些实际示例。
示例 1:基本折线图
我们将首先创建一个简单的折线图来显示五天内的股票价格 −
import plotly.express as px # 数据 days = range(1, 6) stock_price = [100, 105, 98, 105, 110] # 创建折线图 fig = px.line(x=days, y=stock_price, labels={'x':'Days', 'y':'Stock Price'}) # 显示图表 fig.show()
在此演示中,我们将制作一个简单的折线图,y 轴上显示股票价格,x 轴上显示天数。
示例 2:多折线图
让我们扩展示例并比较两个不同企业的股价增长 −
import plotly.express as px # 数据 days = range(1, 6) company_A_stock = [100, 105, 98, 105, 110] company_B_stock = [95, 102, 95, 102, 108] # 创建折线图 fig = px.line(x=days, y=company_A_stock, labels={'x':'Days', 'y':'Stock Price'}) fig.add_trace(px.line(x=days, y=company_B_stock, labels={'x':'Days', 'y':'Stock Price'}).data[0]) # 显示图表 fig.show()
此代码中使用 Add_trace() 来添加图表的第二条线。
示例 3:自定义折线图
可以使用 Plotly 以多种方式自定义折线图。让我们修改前面插图中的折线图:
import plotly.express as px # 数据 days = range(1, 6) company_A_stock = [100, 105, 98, 105, 110] company_B_stock = [95, 102, 95, 102, 108] # 创建折线图 fig = px.line(x=days, y=company_A_stock, labels={'x':''Days', 'y':'Stock Price'}, title='Stock Price Comparison') fig.add_trace(px.line(x=days, y=company_B_stock, labels={'x':'Days', 'y':'Stock Price'}).data[0]) # 自定义图表 fig.update_layout( autosize=False, width=500, height=500, margin=dict( l=50, r=50, b=100, t=100, pad=4 ), paper_bgcolor="LightSteelBlue", ) # 为轨迹添加自定义名称 fig.data[0].name = "Company A" fig.data[1].name = "Company B" # 显示绘图 fig.show()
在上述示例中,使用 update_layout() 函数修改了绘图大小、边距和背景颜色。data[ 的 name 元素用于自定义轨迹(线条)的名称。
示例 4:带有悬停数据的交互式折线图
Plotly 的交互性是其强大之处。为了提高交互性,用户可以使用库个性化悬停信息:
import plotly.express as px # 数据 days = range(1, 6) company_A_stock = [100, 105, 98, 105, 110] company_B_stock = [95, 102, 95, 102, 108] # 创建折线图 fig = px.line(title='股票价格比较') fig.add_trace(px.line(x=days, y=company_A_stock, labels={'x':'Days', 'y':'股票价格'}).data[0]) fig.add_trace(px.line(x=days, y=company_B_stock, labels={'x':'Days', 'y':'Stock Price'}).data[0]) # 添加自定义悬停数据 fig.data[0].name = "公司 A" fig.data[0].hovertemplate = "Day: %{x}<br>Stock Price: %{y}<extra></extra>" fig.data[1].name = "公司 B" fig.data[1].hovertemplate = "Day: %{x}<br>Stock Price: %{y}<extra></extra>" # 显示图表 fig.show()
本例中的悬停数据是使用悬停模板自定义的。x 和 y 的值由占位符 %x 和 %y 表示。 extra>/extra> 元素从悬停信息中取出跟踪名称。
结论
折线图是数据可视化的基本工具,Plotly 提供了一个出色的平台,可快速轻松地创建和自定义这些图表。虽然我们才刚刚开始了解 Plotly 和折线图的功能,但我们希望这些示例能为您开始开发自己的可视化提供坚实的基础。
请始终牢记,掌握数据可视化不仅仅需要理解库的语法或说明;它还需要知道哪种类型的图最适合给定的数据集。因此,请继续使用 Plotly 中提供的各种图表类型,并不断磨练您的数据可视化技术。