如何在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的优势之一是其交互性和精美的视觉效果。希望这篇文章对您有所帮助,下次我们再见!