当前位置:首页>python>python数据可视化技巧的100个练习 -- 21. 网站流量数据的流图

python数据可视化技巧的100个练习 -- 21. 网站流量数据的流图

  • 2026-10-11 05:58:20
python数据可视化技巧的100个练习 -- 21. 网站流量数据的流图
重要性★★★★☆
难度★★★☆☆
你是一家公司的数据分析师,该公司监控其网站各个部分的流量。你的任务是创建一个流图,以可视化不同部分(首页、关于我们、产品、联系我们)在 12 个月内的网站流量数据。
在代码中生成输入数据,并使用 Python 创建流图。
确保图表清晰且标注明确。

【数据生成代码示例】

import pandas as pdimport numpy as npnp.random.seed(0)months = pd.date_range(start='2023-01-01', periods=12, freq='M')sections = ['Home', 'About', 'Products', 'Contact']data = {section: np.random.randint(1000, 5000, size=12) for section in sections}

【图表答案】

【代码答案】

import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport matplotlib.dates as mdatesnp.random.seed(0)months = pd.date_range(start='2023-01-01', periods=12, freq='ME')sections = ['Home', 'About', 'Products', 'Contact']data = {section: np.random.randint(1000, 5000, size=12) for section in sections}df = pd.DataFrame(data, index=months)fig, ax = plt.subplots(figsize=(10, 6))ax.stackplot(df.index, df.T, labels=sections)ax.set_title('Web Traffic Streamgraph')ax.set_xlabel('Month')ax.set_ylabel('Number of Visits')ax.legend(loc='upper left')ax.xaxis.set_major_locator(mdates.MonthLocator())ax.xaxis.set_major_formatter(mdates.DateFormatter('%b %Y'))plt.xticks(rotation=45)plt.tight_layout()plt.show()
为了创建网站流量数据的流图,我们首先导入必要的库:用于数据操作的 pandas、用于生成随机数据的 numpy 和用于绘图的 matplotlib。
我们设置随机种子以确保结果可复现,并生成一个表示 12 个月的日期范围。我们定义网站的各个部分,并创建一个字典,其中包含每个部分在 12 个月内的随机访问次数。
我们将这个字典转换为 pandas DataFrame,月份作为索引。这种 DataFrame 结构使我们能够轻松地操作和可视化数据。
接下来,我们设置一个 matplotlib 图形和坐标轴。我们使用 stackplot 函数创建流图,传入 DataFrame 的索引(月份)和转置的 DataFrame 值(每个部分的访问次数)。这个函数会将数据堆叠起来,以显示随时间累积的访问量。
我们为图表添加标题和标签以便于理解。x 轴被格式化为显示月份和年份,标签被旋转以便更好地阅读。最后,我们使用 plt.tight_layout() 确保布局调整得当,并使用 plt.show() 显示图表。

【小知识】

流图是一种堆叠面积图,用于显示随时间变化的数据。它们特别适用于显示不同类别之间的数据流动和分布。
Matplotlib 中的 stackplot 函数是一个简单而强大的工具,用于创建流图。它自动处理数据堆叠,并可以通过各种参数进行自定义。
在数据可视化练习中,使用 numpy 生成随机数据是一种常见做法,可以在不需要实际数据的情况下模拟现实场景。

最新文章

随机文章