Python数据可视化:使用Plotly创建交互式图表
《尼尔:机械纪元》现已发售八周年!官方发文祝贺-摘要
·
内容教学:
使用Plotly库创建交互式数据可视化。
python
import plotly.graph_objects as go
import plotly.express as px
import pandas as pd
import numpy as np
# 创建示例数据
np.random.seed(42)
dates = pd.date_range('2023-01-01', periods=50, freq='D')
categories = ['A', 'B', 'C']
data = []
for date in dates:
for category in categories:
data.append({
'date': date,
'category': category,
'value': np.random.randint(10, 100),
'ratio': np.random.uniform(0, 1)
})
df = pd.DataFrame(data)
# 创建交互式折线图
fig1 = px.line(
df,
x='date',
y='value',
color='category',
title='分类数值趋势图',
labels={'value': '数值', 'date': '日期', 'category': '类别'}
)
fig1.show()
# 创建交互式散点图
fig2 = px.scatter(
df,
x='value',
y='ratio',
color='category',
size='value',
hover_data=['date'],
title='数值与比率关系图',
labels={'value': '数值', 'ratio': '比率'}
)
fig2.show()
# 创建自定义仪表盘
fig3 = go.Figure()
# 添加多个轨迹
for category in categories:
category_data = df[df['category'] == category]
fig3.add_trace(go.Scatter(
x=category_data['date'],
y=category_data['value'],
name=category,
mode='lines+markers',
hovertemplate=(
f"类别: {category}
"
"日期: %{x}
"
"数值: %{y}
"
""
)
))
fig3.update_layout(
title='多类别数据仪表盘',
xaxis_title='日期',
yaxis_title='数值',
hovermode='x unified'
)
fig3.show()
内容总结:
Plotly可以创建高度交互式的可视化图表
支持缩放、平移、悬停提示等交互功能
plotly.express提供简洁的API,plotly.graph_objects提供更细粒度的控制
图表可以导出为HTML、图片等多种格式
内容优化:
添加主题和样式定制
python
# 使用内置主题
fig.update_layout(template="plotly_dark")
# 自定义颜色
color_discrete_map = {'A': '#FF6B6B', 'B': '#4ECDC4', 'C': '#45B7D1'}
px.line(df, x='date', y='value', color='category', color_discrete_map=color_discrete_map)
创建仪表盘布局
python
from plotly.subplots import make_subplots
fig = make_subplots(
rows=2, cols=2,
subplot_titles=('趋势图', '散点图', '分布图', '汇总图')
)
# 在各个子图中添加不同的图表...
使用Plotly库创建交互式数据可视化。
python
import plotly.graph_objects as go
import plotly.express as px
import pandas as pd
import numpy as np
# 创建示例数据
np.random.seed(42)
dates = pd.date_range('2023-01-01', periods=50, freq='D')
categories = ['A', 'B', 'C']
data = []
for date in dates:
for category in categories:
data.append({
'date': date,
'category': category,
'value': np.random.randint(10, 100),
'ratio': np.random.uniform(0, 1)
})
df = pd.DataFrame(data)
# 创建交互式折线图
fig1 = px.line(
df,
x='date',
y='value',
color='category',
title='分类数值趋势图',
labels={'value': '数值', 'date': '日期', 'category': '类别'}
)
fig1.show()
# 创建交互式散点图
fig2 = px.scatter(
df,
x='value',
y='ratio',
color='category',
size='value',
hover_data=['date'],
title='数值与比率关系图',
labels={'value': '数值', 'ratio': '比率'}
)
fig2.show()
# 创建自定义仪表盘
fig3 = go.Figure()
# 添加多个轨迹
for category in categories:
category_data = df[df['category'] == category]
fig3.add_trace(go.Scatter(
x=category_data['date'],
y=category_data['value'],
name=category,
mode='lines+markers',
hovertemplate=(
f"类别: {category}
"
"日期: %{x}
"
"数值: %{y}
"
""
)
))
fig3.update_layout(
title='多类别数据仪表盘',
xaxis_title='日期',
yaxis_title='数值',
hovermode='x unified'
)
fig3.show()
内容总结:
Plotly可以创建高度交互式的可视化图表
支持缩放、平移、悬停提示等交互功能
plotly.express提供简洁的API,plotly.graph_objects提供更细粒度的控制
图表可以导出为HTML、图片等多种格式
内容优化:
添加主题和样式定制
python
# 使用内置主题
fig.update_layout(template="plotly_dark")
# 自定义颜色
color_discrete_map = {'A': '#FF6B6B', 'B': '#4ECDC4', 'C': '#45B7D1'}
px.line(df, x='date', y='value', color='category', color_discrete_map=color_discrete_map)
创建仪表盘布局
python
from plotly.subplots import make_subplots
fig = make_subplots(
rows=2, cols=2,
subplot_titles=('趋势图', '散点图', '分布图', '汇总图')
)
# 在各个子图中添加不同的图表...
更多推荐
所有评论(0)