使用 Plotly 在 Python 中创建折线图
Plotly 是一个交互式的开源工具包,使用户能够在 Python 的数据可视化领域构建各种美观且智能的图表。本文的主题是折线图,这是最流行的图表形式之一。为了帮助您理解,我们将介绍如何使用 Plotly 创建折线图,并结合实际示例。
尽管我们将主要关注折线图,但请记住,Plotly 是一个灵活的库,支持各种其他图表样式,提供了无数的机会来使用数据讲述引人入胜的故事。
Plotly 简要概述
功能强大的 Plotly 模块支持 Python 交互式和基于浏览器的图表生成。您可以创建用户可以轻松交互的复杂图表,从而实现更深入的数据探索体验。
使用 Plotly 在 Python 中创建折线图
折线图,也称为线形图,可以沿着数轴显示数据。让我们开始使用 Plotly 在 Python 中创建折线图。
Plotly 安装
如果尚未安装 Plotly,请使用下面的 pip 命令安装:
pip install plotly
Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.
创建基本折线图
通过导入 Plotly Express 模块并使用 line() 函数(接受多种形式的数据,例如 Pandas DataFrame 或数组列表),您可以创建 Plotly 的基本折线图。
使用 Plotly 的折线图实际示例
让我们继续介绍一些使用 Plotly 创建折线图的实际示例。
示例 1:基本折线图
我们将首先创建一个简单的折线图来显示股票价格在五天内的增长——
import plotly.express as px # Data days = range(1, 6) stock_price = [100, 105, 98, 105, 110] # Create a line chart fig = px.line(x=days, y=stock_price, labels={'x':'Days', 'y':'Stock Price'}) # Show the plot fig.show()
在这个示例中,我们将创建一个简单的折线图,其中 y 轴表示股票价格,x 轴表示天数。
示例 2:多条折线图
让我们扩展我们的示例,并比较两家不同公司的股票价格增长——
import plotly.express as px # Data days = range(1, 6) company_A_stock = [100, 105, 98, 105, 110] company_B_stock = [95, 102, 95, 102, 108] # Create a line chart 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]) # Show the plot fig.show()
此代码使用 add_trace() 将第二条线添加到图表中。
示例 3:自定义折线图
使用 Plotly 可以通过多种方式自定义折线图。让我们修改前面示例中的折线图:
import plotly.express as px # Data days = range(1, 6) company_A_stock = [100, 105, 98, 105, 110] company_B_stock = [95, 102, 95, 102, 108] # Create a line chart 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]) # Customize chart fig.update_layout( autosize=False, width=500, height=500, margin=dict( l=50, r=50, b=100, t=100, pad=4 ), paper_bgcolor="LightSteelBlue", ) # Add custom names to traces fig.data[0].name = "Company A" fig.data[1].name = "Company B" # Show the plot fig.show()
上述示例使用 update_layout() 函数修改了绘图大小、边距和背景颜色。数据[ ] 的 name 元素用于自定义轨迹(线)的名称。
示例 4:带有悬停数据的交互式折线图
Plotly 的交互性是其强大的功能。为了增强交互性,用户可以使用该库自定义悬停信息:
import plotly.express as px # Data days = range(1, 6) company_A_stock = [100, 105, 98, 105, 110] company_B_stock = [95, 102, 95, 102, 108] # Create a line chart fig = px.line(title='Stock Price Comparison') fig.add_trace(px.line(x=days, y=company_A_stock, labels={'x':'Days', 'y':'Stock Price'}).data[0]) fig.add_trace(px.line(x=days, y=company_B_stock, labels={'x':'Days', 'y':'Stock Price'}).data[0]) # Add custom hover data fig.data[0].name = "Company A" fig.data[0].hovertemplate = "Day: %{x}<br>Stock Price: %{y}<extra></extra>" fig.data[1].name = "Company B" fig.data[1].hovertemplate = "Day: %{x}<br>Stock Price: %{y}<extra></extra>" # Show the plot fig.show()
在本例中,悬停数据使用 hovertemplate 进行自定义。x 和 y 的值由占位符 %x 和 %y 表示。extra> 元素从悬停信息中删除了轨迹名称。
结论
折线图是数据可视化的重要工具,Plotly 提供了一个很好的平台,可以快速轻松地创建和自定义这些图表。虽然我们只是触及了 Plotly 和折线图功能的皮毛,但我们希望这些示例能为您开始创建自己的可视化提供坚实的基础。
始终记住,掌握数据可视化不仅仅是理解库的语法或指令,还包括知道哪种类型的图最适合给定的数据集。因此,请继续尝试 Plotly 中提供的各种图表类型,并不断磨练您的数据可视化技巧。