python 数据分析 Matplotlib常用图表(中)

简介: python 数据分析 Matplotlib常用图表

散点图/气泡图

散点图作用:

  • 单组数据,可以查看数据分布(不常用,最好使用直方图实现)
  • 多组数据,可以插件各数据之间是否存在相关性

坐标系中,每个值用一个点(x轴,y轴确定)表示

# 数据

x = [1,3,5,7,9,11,13,15,17]
y = [2,-5,19,3,5,8,12,6,1]
plt.scatter(x, y)


<matplotlib.collections.PathCollection at 0xbe16e10>

plt.scatter(
 [1,3,5,7,9,11,13,15,17],
 [2,-5,19,3,5,8,12,6,1],
 color='r',
 marker='o',
 linewidth=1,
 alpha=0.5,
# 点大小
# s=1000,
s=[50, 100, 150, 200, 250, 300, 350, 400, 450],
)
# 第二组散点图
plt.scatter(
[10, 12, 16, 18],
[5, 10, 12, 15],
)


<matplotlib.collections.PathCollection at 0xbc2e390>

案例:数据分析居民年龄/收入和超市销售额的对应关系

1. 背景介绍

数据:

  • 顾客年龄
  • 顾客年收入
  • 顾客年购物金额

需求

  • 分析出超市销售额和居民年龄、收入的关系
  • 解释关系产生的原因
  • 提出建议方案

数据

年龄 收入 销售额
 34 350 123
 40 450 114
 37 169 135
 30 189 139
 44 183 117
 36 80 121
 32 166 133
 26 120 140
 32 75 133
 36 40 133


# 年龄
age = [34,40,37,30,44,36,32,26,32,36]
# 收入
income = [350,450,169,189,183,80,166,120,75,40]
# 销售额
sales = [123,114,135,139,117,121,133,140,133,133]

2. 指标计算步骤,略

3. 数据可视化

用户年龄和销售额的关系

plt.scatter(age, sales)


<matplotlib.collections.PathCollection at 0xbccd630>

用户收入和销售额的关系

plt.scatter(income, sales)


<matplotlib.collections.PathCollection at 0xbd22e80>

将三个维度数据画入一个图表

plt.scatter(
age,
sales,
s=income,
alpha=0.5,
)


<matplotlib.collections.PathCollection at 0xbdceeb8>

4. 结论:

  • 随着用户年龄的增加,销售额逐渐降低
  • 随着用户收入的增加,销售额也在降低

原因:

  • 老年人的消费水平不高,只买便宜商品
  • 高收入用户群体较少在本超市消费
  • 本超市的主流用户群体,是发展中的年轻人,销售商品偏年轻化、平民化。

意见建议:

针对超市宣传推广营销活动的建议:

  • 营销针对特定用户群体
  • 年龄25-37岁之间
  • 年收入20万元以下
  • 应针对上述发展中的年轻人进行宣传推广活动

 

条形图/柱状图

  • 条形图(横向)
  • 柱状图(纵向)

条形图和柱状图用来比较各独立类别下的单独数据的大小比较

x = [1,2,3,4,5]
y = [3,6,1,8,2]


<BarContainer object of 5 artists>

plt.bar(
 x,
 y,
 width=0.3, # 柱子粗细
 color='r',
 alpha=0.3,
 )
# 坐标值和坐标标注 自定义
# plt.xticks([1,3,5,6,7])
plt.xticks([1,2,3,4,5], ['a', 'b', 'c', 'd', 'e'])
plt.yticks([3,6,1,8,2], ['A', 'B', 'C', 'D', 'E'])
plt.show() # 直接显示图像,其他编辑器绘图最后必须写这行代码否则没有图

plt.bar(
 x,
 y,
 width=0.3, # 柱子粗细
 color='r',
 alpha=0.3,
 )
# 坐标值和坐标标注 自定义
# plt.xticks([1,3,5,6,7])
plt.xticks([1,2,3,4,5], ['a', 'b', 'c', 'd', 'e'],rotation = 90)#rotation旋转
plt.yticks([3,6,1,8,2], ['A', 'B', 'C', 'D', 'E'])
plt.show() # 直接显示图像,其他编辑器绘图最后必须写这行代码否则没有图

image.png

条形图

  • 条形图粗细属性:height
  • 条形图的x、y坐标翻转
plt.barh(x, y, height=0.5)

案例:某班级男生和女生各科成绩平均分数据可视化

学科 男生 女生
语文 85.5 94
数学 91 82
英语 72 89.5
物理 59 62
化学 66 49
# 男生平均分,语文/数学/英语/物理/化学
 boy = [85.5,91,72,59,66]
 # 女生平均分
 girl = [94,82,89.5,62,49]
 # 男生成绩
 # x轴,各个学科
course = [1,2,3,4,5]
plt.bar(
course,
boy,
width=0.3,
color='g',
alpha=0.3,
)
# 女生成绩
course2 = [1.3, 2.3, 3.3, 4.3, 5.3]
plt.bar(
course2,
girl,
width=0.3,
color='r',
alpha=0.3,
)
# 坐标轴和坐标轴标注
plt.xticks([1.15, 2.15, 3.15, 4.15, 5.15], ['Chi','Math','Eng','Phy','Che'])
# 了解,将数据标注在柱子上
# plt.text(3, 50, 'abcde')
for i,j in zip(course,boy):
plt.text(
i, # x轴,course学科位置
j, # y轴,boy分数
'%.1f' % j, # 数据转为一位小数
ha='center', # 水平对齐
va='bottom', # 垂直对齐
alpha = 0.5,
)
for i,j in zip(course2,girl):
plt.text(
i,
j,
'%.1f' % j,
ha='center',
va='bottom',
alpha = 0.5,
)
plt.grid(linewidth=0.1)
plt.show()
相关文章
|
7天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。
|
12天前
|
移动开发 数据可视化 数据挖掘
利用Python实现数据可视化:以Matplotlib和Seaborn为例
【10月更文挑战第37天】本文旨在引导读者理解并掌握使用Python进行数据可视化的基本方法。通过深入浅出的介绍,我们将探索如何使用两个流行的库——Matplotlib和Seaborn,来创建引人入胜的图表。文章将通过具体示例展示如何从简单的图表开始,逐步过渡到更复杂的可视化技术,帮助初学者构建起强大的数据呈现能力。
|
16天前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
35 2
|
5天前
|
数据采集 数据可视化 数据挖掘
掌握Python数据分析,解锁数据驱动的决策能力
掌握Python数据分析,解锁数据驱动的决策能力
|
13天前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
13天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
|
15天前
|
SQL 数据挖掘 Python
数据分析编程:SQL,Python or SPL?
数据分析编程用什么,SQL、python or SPL?话不多说,直接上代码,对比明显,明眼人一看就明了:本案例涵盖五个数据分析任务:1) 计算用户会话次数;2) 球员连续得分分析;3) 连续三天活跃用户数统计;4) 新用户次日留存率计算;5) 股价涨跌幅分析。每个任务基于相应数据表进行处理和计算。
|
16天前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第33天】本文将介绍如何使用Python编程语言进行数据分析和可视化。我们将从数据清洗开始,然后进行数据探索性分析,最后使用matplotlib和seaborn库进行数据可视化。通过阅读本文,你将学会如何运用Python进行数据处理和可视化展示。
|
3月前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
83 2
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
186 4
下一篇
无影云桌面