当前位置: 首页 > news >正文

Python | 数据可视化中常见的4种标注及示例

在Python的数据可视化中,标注(Annotation)技术是一种非常有用的工具,它可以帮助用户更准确地解释图表中的数据和模式。在本文中,将带您了解使用Python实现数据可视化时应该了解的4种标注。

常见的标注方式

  • 文本标注
  • 箭头标注
  • 突出标注
  • 趋势线标注

让我们通过Python实现来了解所有这些用于数据可视化的标注技术。

文本标注

文本标注是直接添加到图表上的简短文本注释,以提供额外的上下文或突出显示重要的数据点。它们对于注意特定事件以解释趋势或注意数据中的异常情况特别有用。例如,在销售图表中,可以使用文本标注来标记新产品或营销活动的推出,以帮助查看者快速了解销售数据波动的原因。

下面是一个使用Python向图添加文本标注的示例:

import matplotlib.pyplot as pltmonths = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
sales = [100, 120, 90, 150, 200, 230, 210, 190, 220, 240, 250, 270]plt.plot(months, sales, marker='o')
plt.title('Monthly Sales Data')
plt.xlabel('Month')
plt.ylabel('Sales')# adding text annotations
plt.text('May', 200, 'Product Launch', fontsize=9, ha='center', color='red')
plt.text('Nov', 250,

在这里插入图片描述

箭头标注

箭头标注使用箭头直接指向图表上的特定数据点或区域,以突出显示关键元素或趋势。它们在突出离群值、指示重大变化或注意数据中值得注意的模式方面特别有效。例如,在营销支出与销售额的散点图中,箭头可以指向投资回报率异常高或异常低的离群值,以明确哪些数据点需要进一步关注。

示例:

marketing_spend = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
sales = [12, 25, 27, 35, 50, 52, 60, 65, 78, 85]plt.scatter(marketing_spend, sales)
plt.xlabel('Marketing Spend (in $1000)')
plt.ylabel('Sales (in $1000)')# adding arrow annotations
plt.annotate('High ROI', xy=(20, 25), xytext=(30, 40), arrowprops=dict(facecolor='blue', shrink=0.05))
plt.annotate('Low ROI', xy=(60, 52), xytext=(60, 90), arrowprops=dict(facecolor='red', shrink=0.05))plt.show()

在这里插入图片描述

突出标注

突出显示区域涉及对图形的特定区域进行阴影或着色,以引起对特定时间段、范围或区域的注意。此技术用于突出显示数据中的关键部分,例如高活动期、重大事件或满足某些标准的区域。例如,在市场崩溃期间突出显示区域的股票价格的时间序列图可以使观众更容易在视觉上识别影响期。

下面是一个使用Python突出显示图形中区域的示例:

import numpy as npdates = np.arange('2023-01', '2024-01', dtype='datetime64[M]')
stock_prices = np.random.randn(len(dates)).cumsum() + 100plt.plot(dates, stock_prices)
plt.title('Stock Prices Over Time')
plt.xlabel('Date')
plt.ylabel('Price')# highlighting an area
plt.axvspan('2023-06', '2023-09', color='yellow', alpha=0.3, label='Summer Period')plt.legend()

在这里插入图片描述

趋势线标注

趋势线是添加到图形中的线,用于指示数据随时间或跨变量的一般方向或模式。它们用于可视化数据集中的趋势,平均值或关系,这有助于识别长期运动和趋势。例如,在显示学习时间和考试分数之间关系的散点图中,趋势线可以通过指示更多的学习时间通常导致更高的分数来说明是否存在正相关性。

下面是一个使用Python在图表中添加趋势线的示例:

study_hours = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
scores = np.array([50, 55, 60, 65, 70, 75, 80, 85, 90, 95])plt.scatter(study_hours, scores)
plt.title('Study Hours vs Exam Scores')
plt.xlabel('Study Hours')
plt.ylabel('Scores')# adding a trend line
m, b = np.polyfit(study_hours, scores, 1)
plt.plot(study_hours, m*study_hours + b, color='red', label='Trend Line')plt.legend()

在这里插入图片描述

总结

以上这些示例涵盖了Python数据可视化中常见的4种标注方式,它们可以单独使用或组合使用,以创建更具解释性和吸引力的图表。

http://www.lryc.cn/news/504862.html

相关文章:

  • LearnOpenGL学习(高级OpenGL -> 高级GLSL,几何着色器,实例化)
  • Scala学习记录
  • vue使用pdfh5.js插件,显示pdf文件白屏
  • docker login 出错 Error response from daemon
  • Web 身份认证 --- Session和JWT Token
  • UE5制作倒计时功能
  • Linux去除注释和空行
  • Elasticsearch 7.x入门学习-Spring Data Elasticsearch框架
  • 网络层IP协议(TCP)
  • 计算机视觉中的边缘检测算法
  • js 常用扩展方法总结+应用
  • 数据结构---图(Graph)
  • 前端解析超图的iserver xml
  • LocalForage 使用指南:统一管理 LocalStorage、WebSQL 和 IndexedDB
  • 代码随想录算法训练营第五天-哈希-242.有效的字母异位词
  • 学习maven(maven 项目模块化,继承,聚合)
  • KDD 2025预讲会:10位一作的论文分享与话题思辨|12月18日全天直播
  • 掌握特征提取:机器学习中的 PCA、t-SNE 和 LDA模型
  • JAVA基础:注释
  • 从源码构建安装Landoop kafka-connect-ui
  • 【自动驾驶】Ubuntu22.04源码安装Autoware Core/Universe
  • 使用Nexus3搭建npm私有仓库
  • OpenHarmony和OpenVela的技术创新以及两者对比
  • 【LeetCode每日一题】Leetcode 1071.字符串的最大公因子
  • 《C++:计算机视觉图像识别与目标检测算法优化的利器》
  • 大模型的构建与部署(2)——数据清洗
  • 试题转excel;word转excel;大风车excel
  • 微信小程序webview和小程序通讯
  • ChatGPT大模型 创作高质量文案的使用教程和案例
  • Vue Web开发(八)