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
# 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指示。轨迹名称由额外元素从悬停信息中取出。
结论
线图是数据可视化的基本工具,Plotly提供了一个强大的平台,可以快速轻松地创建和自定义这些图表。尽管我们只是初步了解了Plotly和线图的能力,但我们希望这些示例为您开始开发自己的可视化提供了坚实的基础。
永远记住,精通数据可视化不仅需要了解库的语法或指令,还需要知道哪种类型的图是最适合给定数据集的。因此,请继续尝试Plotly中可用的各种图表类型,并不断改进您的数据可视化技巧。