首先,我们需要安装Plotly。打开终端,输入以下命令:
pip install plotly
安装完成后,让我们开始创建第一个交互式图表吧!
基础折线图先从最简单的折线图开始,看看Plotly的魔力:
import plotly.express as pximport pandas as pd# 创建示例数据data = { '月份': ['1月', '2月', '3月', '4月', '5月'], '销售额': [1200, 1900, 1500, 2100, 2400], '利润': [300, 450, 380, 520, 610]}df = pd.DataFrame(data)# 创建交互式折线图fig = px.line(df, x='月份', y=['销售额', '利润'], title='2024年月度销售数据', markers=True) # 显示数据点标记# 展示图表fig.show()
小贴士:运行代码后,图表会在浏览器中自动打开。你可以尝试鼠标悬停在数据点上,还能看到具体的数值哦!
精美散点图来看看如何制作一个带有分类的散点图:
import plotly.express as pximport numpy as np# 生成示例数据np.random.seed(42)n_points = 50data = { '花费': np.random.randint(100, 1000, n_points), '时长': np.random.randint(10, 60, n_points), '满意度': np.random.randint(1, 6, n_points), '类型': np.random.choice(['网页', '视频', '游戏'], n_points)}df = pd.DataFrame(data)# 创建气泡图fig = px.scatter(df, x='花费', y='时长', size='满意度', # 气泡大小 color='类型', # 按类型着色 title='用户体验分析', labels={'花费': '广告花费(元)', '时长': '停留时间(分钟)', '满意度': '用户满意度'})fig.show()
动态条形图让我们来创建一个会动的条形图,展示数据随时间的变化:
import plotly.express as px# 创建示例数据df = pd.DataFrame({ '年份': [2020, 2020, 2020, 2021, 2021, 2021, 2022, 2022, 2022], '季度': ['Q1', 'Q2', 'Q3', 'Q1', 'Q2', 'Q3', 'Q1', 'Q2', 'Q3'], '收入': [100, 120, 150, 130, 160, 180, 170, 200, 220]})# 创建动画条形图fig = px.bar(df, x='季度', y='收入', animation_frame='年份', # 动画帧 title='季度收入变化', range_y=[0, 250]) # 设置y轴范围# 更新布局fig.update_layout( updatemenus=[dict(type='buttons', showactive=False, buttons=[dict(label='播放', method='animate', args=[None])])])fig.show()
小贴士:点击播放按钮,可以看到数据随年份变化的动画效果!
3D散点图Plotly还能轻松创建3D图表,让数据更立体:
import plotly.express as pxnp.random.seed(42)# 生成3D数据n_points = 100df = pd.DataFrame({ 'x': np.random.normal(0, 1, n_points), 'y': np.random.normal(0, 1, n_points), 'z': np.random.normal(0, 1, n_points), '类别': np.random.choice(['A', 'B', 'C'], n_points)})# 创建3D散点图fig = px.scatter_3d(df, x='x', y='y', z='z', color='类别', title='3D数据分布')# 更新布局fig.update_layout(scene = dict( xaxis_title='X轴', yaxis_title='Y轴', zaxis_title='Z轴'))fig.show()
实战练习:创建仪表盘来试试创建一个简单的数据仪表盘吧:
import plotly.graph_objects as gofrom plotly.subplots import make_subplots# 创建子图布局fig = make_subplots( rows=2, cols=2, subplot_titles=('温度变化', '湿度分布', '压力趋势', '能耗统计'))# 添加温度曲线fig.add_trace( go.Scatter(x=[1, 2, 3, 4], y=[24, 25, 23, 26]), row=1, col=1)# 添加湿度饼图fig.add_trace( go.Pie(labels=['低', '中', '高'], values=[30, 45, 25]), row=1, col=2)# 添加压力柱状图fig.add_trace( go.Bar(x=['上午', '中午', '下午'], y=[1013, 1015, 1014]), row=2, col=1)# 添加能耗面积图fig.add_trace( go.Scatter(x=[1, 2, 3, 4], y=[100, 120, 90, 110], fill='tozeroy'), row=2, col=2)# 更新布局fig.update_layout(height=800, title_text="环境监测仪表盘")fig.show()
提示:你可以尝试修改数据和图表类型,创建属于自己的数据仪表盘!
今天的Python学习之旅就到这里啦!记得动手敲代码。祝大家学习愉快,Python学习节节高!