如何在Python Plotly中使用Plotly Express绘制多行图表?

如何在Python Plotly中使用Plotly Express绘制多行图表?

Plotly Express是基于Plotly的高级API,专为快速创建精美的图形而设计的,非常适合Python初学者和快速实验。在本文中,我们将学习如何使用Plotly Express绘制多行图表。

安装Plotly和Plotly Express

首先,让我们安装必要的库。我们可以使用以下命令安装Plotly和Plotly Express。

!pip install plotly
!pip install plotly-express

接下来,我们将导入必要的库。

import plotly.express as px
import plotly.graph_objs as go
from plotly.subplots import make_subplots

绘制多行折线图

我们将使用一个虚拟数据集来演示如何绘制多行图表。首先,读取数据集并创建一列“Weekday”。

import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv")
df['Weekday'] = pd.to_datetime(df['Date']).dt.weekday_name

接下来,我们使用px.line()函数绘制折线图。

fig = px.line(df, x='Date', y='AAPL.High', color='Weekday')
fig.show()

可以使用参数template使用不同的模板,比如“plotly_dark”。

fig = px.line(df, x='Date', y='AAPL.High', color='Weekday', template='plotly_dark')
fig.show()

绘制多行堆叠条形图

我们还可以使用px.bar()函数绘制多行堆叠条形图。

首先,我们使用虚拟数据集创建一个DataFrame。

import numpy as np
np.random.seed(42)
df = pd.DataFrame({'Type': ['A', 'B', 'C', 'D'], 'Jan': np.random.randint(20, 40, 4), 'Feb': np.random.randint(20, 40, 4), 'Mar': np.random.randint(20, 40, 4)})

然后,我们可以使用px.bar()函数绘制堆叠条形图。

fig = px.bar(df, x='Type', y=['Jan', 'Feb', 'Mar'], barmode='stack', title='Multi-line Stacked Bar Chart')
fig.show()

绘制多行子图

在Plotly中,您还可以绘制多行子图,每个子图显示不同的数据。接下来,我们介绍如何使用make_subplots()函数绘制多行子图。

首先,我们使用虚拟数据集创建两个DataFrame。

df1 = pd.DataFrame({'x': [1, 2, 3], 'y1': [4, 5, 6], 'y2': [7, 8, 9]})
df2 = pd.DataFrame({'x': [1, 2, 3], 'y1': [10, 11, 12], 'y2': [13, 14, 15]})

然后,我们使用make_subplots()函数创建一个2行1列的布局,并定义x轴和y轴的标签。

fig = make_subplots(rows=2, cols=1, subplot_titles=("Subplot 1", "Subplot 2"), x_title='x-axis', y_title='y-axis')

接下来,我们将第一个子图和第二个子图添加到布局中。

fig.add_trace(go.Scatter(x=df1['x'], y=df1['y1'], mode='lines', name='y1', line=dict(width=2, color='blue')), row=1, col=1)
```python
fig.add_trace(go.Scatter(x=df1['x'], y=df1['y2'], mode='lines', name='y2', line=dict(width=2, color='red')), row=1, col=1)

fig.add_trace(go.Scatter(x=df2['x'], y=df2['y1'], mode='lines', name='y1', line=dict(width=2, color='green')), row=2, col=1)
fig.add_trace(go.Scatter(x=df2['x'], y=df2['y2'], mode='lines', name='y2', line=dict(width=2, color='orange')), row=2, col=1)

fig.update_layout(height=600, title='Multiple Lines Subplots')
fig.show()

结论

在本文中,我们学习了如何使用Python Plotly Express绘制多行图表。我们使用了px.line()绘制折线图,px.bar()绘制堆叠条形图和make_subplots()绘制多行子图。与其他Python可视化工具相比,Plotly的优势之一是其交互性和精美的视觉效果。希望这篇文章对您有所帮助,下次我们再见!

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程