通过Python绘制不同数据类型适合的可视化图表

在数据可视化中,对于描述数值变量与数值变量之间的关系常见的有散点图和热力图,以及描述数值变量与分类变量之间的关系常见的有条形图,饼图和折线图,可以通过使用Python的matplotlibseaborn库来绘制图表进行可视化表达,接下来分别对这些类型进行举例演示。

一:数值变量与数值变量

1:散点图 (Scatter Plot) - 展示两个数值变量之间的关系

使用Python的Matplotlib库来绘制这个散点图。首先,我会生成一些模拟数据来代表身高和体重,然后使用Matplotlib绘制散点图。

python 复制代码
import matplotlib.pyplot as plt
import numpy as np

# 生成模拟数据
np.random.seed(0)
height = np.random.normal(170, 10, 100)  # 身高数据,平均身高170cm,标准差10cm
weight = np.random.normal(70, 15, 100)   # 体重数据,平均体重70kg,标准差15kg

# 绘制散点图
plt.figure(figsize=(10, 6))
plt.scatter(height, weight, color='blue', alpha=0.5)
plt.title('身高与体重的关系')
plt.xlabel('身高 (cm)')
plt.ylabel('体重 (kg)')
plt.grid(True)
plt.show()

结果如下:

这是一个简单的散点图示例,展示了身高和体重之间的关系。在这个图中,每个点代表一个数据点,其横坐标表示身高,纵坐标表示体重。通过这个图表,我们可以初步观察身高和体重之间的分布模式。

2:热力图 (Heatmap) - 展示两个数值变量的联合分布

要绘制一个热力图,我们需要以下信息:

  1. 数据集:热力图通常用于展示二维数据集,其中每个数据点都有一个值,这个值将被映射到颜色上。
  2. 颜色映射:确定如何将数据值映射到不同的颜色。
  3. 标题和标签:为图表设定一个清晰的标题,以及X轴和Y轴的标签,以便于理解。

基于以上几点,我将创建一个简单的热力图示例。假设我们有一个简单的二维数据集,我们想要通过热力图来展示这个数据集的值分布。

python 复制代码
import matplotlib.pyplot as plt
import numpy as np

# 生成模拟数据
np.random.seed(0)
data = np.random.rand(10, 10)  # 10x10的二维数据集

# 绘制热力图
plt.figure(figsize=(8, 6))
plt.imshow(data, cmap='hot', interpolation='nearest')
plt.colorbar(label='值')
plt.title('热力图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.show()

结果如下:

这是一个简单的热力图示例,展示了10x10二维数据集的值分布。在这个图中,每个方格代表数据集中的一个数据点,其颜色深浅表示该数据点的值大小。颜色越深,值越大;颜色越浅,值越小。

二:类别变量与数值变量

1:堆叠条形图 (Stacked Bar Chart) - 展示多个类别变量的数值分布

堆叠条形图是一种特殊的条形图,其中每个条形代表多个数据系列的总和,每个系列以不同的颜色堆叠在一起。要绘制一个堆叠条形图,我们需要以下信息:

  1. 数据集:包含多个数据系列的二维数据集,其中每个系列都有一个或多个数据点。
  2. 类别标签:用于X轴的标签,表示每个条形代表的类别。
  3. 系列标签:用于图例,表示每个数据系列的名称。

基于以上几点,我将创建一个简单的堆叠条形图示例。假设我们有一个关于不同产品的销售数据,包括三个季度的销售额。

python 复制代码
import matplotlib.pyplot as plt
import numpy as np

# 生成模拟数据
np.random.seed(0)
products = ['产品A', '产品B', '产品C', '产品D']
q1_sales = np.random.randint(50, 100, len(products))
q2_sales = np.random.randint(50, 100, len(products))
q3_sales = np.random.randint(50, 100, len(products))

# 计算堆叠的底部位置
bar_width = 0.25
index = np.arange(len(products))

# 绘制堆叠条形图
plt.figure(figsize=(10, 6))
plt.bar(index, q1_sales, bar_width, label='Q1')
plt.bar(index, q2_sales, bar_width, bottom=q1_sales, label='Q2')
plt.bar(index, q3_sales, bar_width, bottom=q1_sales+q2_sales, label='Q3')

# 设置图表标题和标签
plt.title('产品季度销售数据堆叠条形图')
plt.xlabel('产品')
plt.ylabel('销售额')
plt.xticks(index, products)
plt.legend()

plt.show()

结果如下:

这是一个简单的堆叠条形图示例,展示了不同产品在三个季度的销售额。在这个图中,每个产品对应一个条形,每个条形的不同颜色部分代表不同季度的销售额。通过这个图表,我们可以直观地比较不同产品在不同季度的销售情况。

2:饼图 (Pie Chart) - 展示一个或多个类别变量的分布

要绘制一个饼图,我们需要以下信息:

  1. 数据集:一个包含各个部分数值的数据集。
  2. 标签:每个部分对应的标签,用于在饼图上标记。
  3. 颜色:可选,为每个部分指定颜色。

基于以上几点,我将创建一个简单的饼图示例。假设我们有一个关于不同水果销售量的数据集,我们想要通过饼图来展示每种水果的销售比例。

python 复制代码
import matplotlib.pyplot as plt

# 生成模拟数据
fruits = ['苹果', '香蕉', '橙子', '葡萄', '草莓']
sales = [30, 25, 20, 15, 10]

# 绘制饼图
plt.figure(figsize=(8, 6))
plt.pie(sales, labels=fruits, autopct='%1.1f%%', startangle=140)
plt.title('水果销售比例饼图')
plt.show()

结果如下:

这是一个简单的饼图示例,展示了不同水果的销售比例。在这个图中,每种水果的销售量被表示为一个扇形,其大小对应于该水果的销售比例。通过这个图表,我们可以直观地看到各种水果在总销售量中的占比。

3:折线图 (Line Chart) - 展示数值变量随时间或有序类别变量的变化

要绘制一个折线图,我们需要以下信息:

  1. 数据集:至少包含两个变量的数据集,通常一个用于X轴,一个用于Y轴。
  2. 标题和标签:为图表设定一个清晰的标题,以及X轴和Y轴的标签,以便于理解。
  3. 线条样式和颜色:可选,用于区分不同的数据系列。

基于以上几点,我将创建一个简单的折线图示例。假设我们有一个关于某城市一周内每天温度的数据集,我们想要通过折线图来展示这一周温度的变化趋势。

python 复制代码
import matplotlib.pyplot as plt
import numpy as np

# 生成模拟数据
days = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
temperatures = np.random.uniform(15, 30, len(days))  # 温度数据,假设在15°C到30°C之间

# 绘制折线图
plt.figure(figsize=(10, 6))
plt.plot(days, temperatures, marker='o', color='b')
plt.title('一周内每天温度变化折线图')
plt.xlabel('星期')
plt.ylabel('温度 (°C)')
plt.grid(True)
plt.show()

结果如下:

这是一个简单的折线图示例,展示了某城市一周内每天的温度变化。在这个图中,横轴表示星期,纵轴表示温度。每个点代表对应星期的温度,点与点之间的线条显示了温度的变化趋势。

以上就是通过使用Python的matplotlib库来绘制图表描述数值变量与数值变量之间的关系和数值变量与分类变量之间的关系。

点下关注,分享更多有关AI,数据分析和量化金融相关的实用教程和项目。

相关推荐
qq_5895681018 分钟前
数据可视化echarts学习笔记
学习·信息可视化·echarts
黄公子学安全1 小时前
Java的基础概念(一)
java·开发语言·python
程序员一诺2 小时前
【Python使用】嘿马python高级进阶全体系教程第10篇:静态Web服务器-返回固定页面数据,1. 开发自己的静态Web服务器【附代码文档】
后端·python
小木_.2 小时前
【Python 图片下载器】一款专门为爬虫制作的图片下载器,多线程下载,速度快,支持续传/图片缩放/图片压缩/图片转换
爬虫·python·学习·分享·批量下载·图片下载器
lovelin+v175030409662 小时前
安全性升级:API接口在零信任架构下的安全防护策略
大数据·数据库·人工智能·爬虫·数据分析
Jiude3 小时前
算法题题解记录——双变量问题的 “枚举右,维护左”
python·算法·面试
唐小旭3 小时前
python3.6搭建pytorch环境
人工智能·pytorch·python
道一云黑板报3 小时前
Flink集群批作业实践:七析BI批作业执行
大数据·分布式·数据分析·flink·kubernetes
是十一月末3 小时前
Opencv之对图片的处理和运算
人工智能·python·opencv·计算机视觉
爱学测试的李木子3 小时前
Python自动化测试的2种思路
开发语言·软件测试·python