Plotly:让数据可视化变得生动有趣!

青青直言 2024-11-04 15:50:40
今天要给大家介绍一个超级炫酷的Python数据可视化库 —— Plotly!它就像是一位魔法师,能够把枯燥的数据变成生动有趣的交互式图表。不同于传统的静态图表,Plotly创建的图表可以让我们缩放、旋转、悬停查看详情,简直不要太好玩!让我们一起来探索这个神奇的数据可视化世界吧!

初识Plotly

首先,我们需要安装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学习节节高!

0 阅读:0

青青直言

简介:欢迎大家关注我,给我点赞!