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()
相关文章
|
2月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
95 4
数据分析的 10 个最佳 Python 库
|
22天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
63 8
|
2月前
|
移动开发 数据可视化 数据挖掘
利用Python实现数据可视化:以Matplotlib和Seaborn为例
【10月更文挑战第37天】本文旨在引导读者理解并掌握使用Python进行数据可视化的基本方法。通过深入浅出的介绍,我们将探索如何使用两个流行的库——Matplotlib和Seaborn,来创建引人入胜的图表。文章将通过具体示例展示如何从简单的图表开始,逐步过渡到更复杂的可视化技术,帮助初学者构建起强大的数据呈现能力。
|
2月前
|
数据可视化 JavaScript 前端开发
Python中交互式Matplotlib图表
【10月更文挑战第20天】Matplotlib 是 Python 中最常用的绘图库之一,但默认生成的图表是静态的。通过结合 mpld3 库,可以轻松创建交互式图表,提升数据可视化效果。本文介绍了如何使用 mpld3 在 Python 中创建交互式散点图、折线图和直方图,并提供了详细的代码示例和安装方法。通过添加插件,可以实现缩放、平移和鼠标悬停显示数据标签等交互功能。希望本文能帮助读者掌握这一强大工具。
|
2月前
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
86 5
|
3月前
|
数据可视化 数据挖掘 Python
Seaborn 库创建吸引人的统计图表
【10月更文挑战第11天】本文介绍了如何使用 Seaborn 库创建多种统计图表,包括散点图、箱线图、直方图、线性回归图、热力图等。通过具体示例和代码,展示了 Seaborn 在数据可视化中的强大功能和灵活性,帮助读者更好地理解和应用这一工具。
|
2月前
|
SQL 数据挖掘 Python
数据分析编程:SQL,Python or SPL?
数据分析编程用什么,SQL、python or SPL?话不多说,直接上代码,对比明显,明眼人一看就明了:本案例涵盖五个数据分析任务:1) 计算用户会话次数;2) 球员连续得分分析;3) 连续三天活跃用户数统计;4) 新用户次日留存率计算;5) 股价涨跌幅分析。每个任务基于相应数据表进行处理和计算。
|
3月前
|
数据可视化 定位技术 Python
Python数据可视化--Matplotlib--入门
Python数据可视化--Matplotlib--入门
34 0
|
4月前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
64 1
|
4月前
|
机器学习/深度学习 数据可视化 数据挖掘
数据可视化大不同!Python数据分析与机器学习中的Matplotlib、Seaborn应用新视角!
在数据科学与机器学习领域,数据可视化是理解数据和优化模型的关键。Python凭借其强大的可视化库Matplotlib和Seaborn成为首选语言。本文通过分析一份包含房屋面积、卧室数量等特征及售价的数据集,展示了如何使用Matplotlib绘制散点图,揭示房屋面积与售价的正相关关系;并利用Seaborn的pairplot探索多变量间的关系。在机器学习建模阶段,通过随机森林模型展示特征重要性的可视化,帮助优化模型。这两个库在数据分析与建模中展现出广泛的应用价值。
59 2