当前位置:首页>python>python数据可视化技巧的100个练习 -- 40. 销售趋势分析的连接散点图

python数据可视化技巧的100个练习 -- 40. 销售趋势分析的连接散点图

  • 2026-10-11 06:56:57
python数据可视化技巧的100个练习 -- 40. 销售趋势分析的连接散点图
重要性★★★★☆
难度★★★☆☆
您是一家零售公司的数据分析师。
营销团队希望可视化其畅销产品过去 12 个月的销售趋势。
他们特别要求使用连接散点图来显示时间与销售量之间的关系。
您的任务是使用 Python 创建一个连接散点图,显示以下内容:
  • 每月销售数据点
  • 按时间顺序连接这些点的线
  • 每个月的清晰标签
  • 适当的轴标签和标题
使用提供的代码生成 12 个月的销售样本数据。
然后,使用 matplotlib 创建连接散点图。
确保您的代码高效且遵循 Python 数据可视化的最佳实践。

【数据生成代码示例】

import pandas as pd import numpy as np np.random.seed(42) dates = pd.date_range(start='2023-01-01', end='2023-12-31', freq='M') sales = np.random.randint(1000, 5000, size=12) df = pd.DataFrame({'Date': dates, 'Sales': sales}) 

【图表答案】

【代码答案】

import pandas as pd import numpy as np import matplotlib.pyplot as plt np.random.seed(42) dates = pd.date_range(start='2023-01-01', end='2023-12-31', freq='M') sales = np.random.randint(1000, 5000, size=12) df = pd.DataFrame({'Date': dates, 'Sales': sales}) # Set up the plot plt.figure(figsize=(12, 6)) plt.scatter(df['Date'], df['Sales'], s=50, color='blue', zorder=2) plt.plot(df['Date'], df['Sales'], color='red', zorder=1) # Customize the plot plt.title('2023 年每月销售趋势', fontsize=16) plt.xlabel('月份', fontsize=12) plt.ylabel('销售量', fontsize=12) plt.grid(True, linestyle='--', alpha=0.7) # Format x-axis to show month names plt.gca().xaxis.set_major_formatter(plt.matplotlib.dates.DateFormatter('%b')) plt.xticks(rotation=45) # Add labels for each point [plt.annotate(f'{sale}', (date, sale), textcoords="offset points", xytext=(0,10), ha='center') for date, sale in zip(df['Date'], df['Sales'])] plt.tight_layout() plt.show()
这段代码创建了一个连接散点图,用于可视化每月销售数据。
以下是 Python 数据处理和可视化的详细解释:

数据生成

我们使用 pandas 和 numpy 创建样本数据。
pd.date_range() 生成 2023 年每月的时间序列。
np.random.randint() 创建介于 1000 和 5000 之间的随机销售数据。
数据存储在 pandas DataFrame 中,便于后续操作。

设置图表

plt.figure(figsize=(12, 6)) 创建一个指定尺寸的新图表。
plt.scatter() 绘制单个数据点(散点图)。
plt.plot() 将这些点用线连接起来。
'zorder' 参数确保散点位于线条上方。

自定义图表

plt.title()、plt.xlabel() 和 plt.ylabel() 设置标题和轴标签。
plt.grid() 添加网格,提高可读性。

格式化 X 轴

plt.gca().xaxis.set_major_formatter() 将 x 轴格式化为显示月份缩写。
plt.xticks(rotation=45) 旋转 x 轴标签,便于查看。

添加数据标签

使用带有 plt.annotate() 的列表推导式为每个数据点添加标签。
'textcoords' 和 'xytext' 参数将标签定位在每个点的上方。

最终化和显示

plt.tight_layout() 调整图表以适应图表区域。
plt.show() 显示最终图表。
这段代码展示了 Python 数据可视化的几个关键概念:
使用 pandas 进行数据处理
使用 matplotlib 创建和自定义图表
结合不同类型的图表(散点图和折线图)
格式化轴标签和添加注释
使用列表推导式高效地添加数据标签

【小知识】

  • 连接散点图特别适用于显示两个变量之间随时间演变的关系。
  • 这种类型的图表由《纽约时报》在其数据新闻报道中推广。
  • 虽然这里使用了 matplotlib,但其他 Python 库(如 Seaborn 或 Plotly)也可以创建类似的可视化,只是语法不同。
  • 在 matplotlib 中,'zorder' 参数决定了绘图元素的绘制顺序,这对于确保所有组件的可见性至关重要。
  • 用于添加标签的列表推导式是 Python 的一个强大特性,可以显著降低代码复杂性并提高可读性。
  • matplotlib.dates 中的 DateFormatter 类是自定义图表轴上日期表示的强大工具。
  • 设置随机种子(np.random.seed())确保随机数据生成的可重复性,这对于数据分析和可视化中一致的结果至关重要。


系列完整内容可以在公众号主页搜索或点击分栏找到,欢迎扫码关注预防迷路找不到。感谢您的支持与相伴。

最新文章

随机文章