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

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

一:数值变量与数值变量

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

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

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()

结果如下:

a16f20c543f546648afb61524401d74e.png

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

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

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

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

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

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()

结果如下:

dca37940bbf4402698401244ec367607.png

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

二:类别变量与数值变量

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

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

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

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

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()

结果如下:

c1d4606676b24f08bba5dd9b8ef8b12d.png

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

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

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

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

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

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()

结果如下:

96daf19563244bb3814b5223b08275af.png

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

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

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

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

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

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()

结果如下:

9dbc6eb146b5471a9cfded2724241b17.png

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值