分析特征间的关系:点线之间的爱恨情仇

发布于:2023-01-06 ⋅ 阅读:(570) ⋅ 点赞:(0)

在Python中,散点图和折线图是数据分析最常用的两种图形。这两种图形都能够分析不同数值型特征间的关系。

1.散点图

1.1散点图函数

在pyplot中可以使用scatter函数绘制散点图,其使用格式如下。

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs)

函数常用参数及其说明如下表所示。

参数名称 说明
x ,y 接收array,表示x轴和y轴对应的数据。无默认值
s 接收数值或一维的array。表示指定点的大小,若传入一维array则表示每个点的大小。无默认值
c 接收颜色或一维的array。表示指定点的颜色,若传入一维array则表示每个点的颜色。无默认值
marker 接收特定str,表示绘制的点的类型。
alpha 接收0~1的float,表示点的透明度。

2.折线图

2.1折线图函数

在pyplot中可以使用plot函数绘制折线图,其基本使用格式如下。

matplotlib.pyplot.plot(*args, **kwargs)

plot函数在官方文档的语法中只要求填入不定长参数,实际可以填入的主要参数如表所示

参数名称 说明
x,y 接收array,表示x轴和y轴对应的数据。
color 接收array,表示x轴和y轴对应的数据。
linestyle 接收特定str,表示指定线条类型。默认为“-”
marker 接收特定str,表示绘制的点的类型。
alpha 接收0~1的float,表示点的透明度。

color参数的8种常用颜色的缩写如表所示。

颜色缩写 代表的颜色
b 蓝色
g 绿色
r 红色
c 青色
m 品红
y 黄色
k 黑色
w 白色

plot函数一次可以接收多组数据,添加多条折线图,同时还可以分别定义每条折线的颜色、点的形状和类型,将折线的颜色、点的形状和类型连接在一起用一个字符串表示。

3.散点图与折线图的绘制

3.1散点图绘制

拿以下数据进行分析
在这里插入图片描述
分析步骤:首先读取表数据,提取其中的columns字段,视为数据的标签,提取其中的values字段,数据的存在位置,设置画布,绘制散点图,添加横轴标签(年份),添加y轴名称(年末总人口(万人)), 添加图表标题(2000-2019年年末总人口散点图),这里以散点图为例

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] =' SimHei'
plt.rcParams['axes.unicode_minus'] = False
data = pd.read_csv('../data/people.csv')
name = data.columns  
values = data.values 
plt.figure(figsize=(9, 7))  
plt.scatter(values[:, 0], values[:, 1], marker='o')  
plt.xlabel('年份')  
plt.ylabel('年末总人口(万人)')  
plt.xticks(range(0, 20), values[range(0, 20), 0], rotation=45)
plt.title('2000-2019年年末总人口散点图')  
plt.savefig('../tmp/2000-2019年年末总人口散点图.png')
plt.show()

在这里插入图片描述

plt.figure(figsize=(9, 7))  # 设置画布
plt.scatter(values[:, 0], values[:, 2], marker='o',c='red')  # 绘制散点图
plt.scatter(values[:, 0], values[:, 3], marker='D',c='blue')  # 绘制散点图
plt.scatter(values[:, 0], values[:, 4], marker='v',c='black')  # 绘制散点图
plt.xlabel('年份')  # 添加横轴标签
plt.ylabel('年末总人口(万人)')  # 添加纵轴标签
plt.xticks(range(0, 20), values[range(0, 20), 0], rotation=45)
plt.title('2000-2019年各年龄段年末总人口散点图')  # 添加图表标题
plt.legend(['0-14岁人口', '15-64岁人口', '65岁及以上人口'])  #添加图例
plt.savefig('../tmp/2000-2019年各年龄段年末总人口散点图.png')#图片保存地址
plt.show()

在这里插入图片描述

3.2折线图绘制

plt.figure(figsize=(9, 7))  # 设置画布
plt.plot(values[:, 0], values[:, 1], color='r', linestyle='--')  # 绘制折线图
plt.xlabel('年份')  #添加横轴标签
plt.ylabel('年末总人口(万人)')  # 添加y轴名称
plt.xticks(range(0, 20), values[range(0, 20), 0], rotation=45)
plt.title('2000-2019年年末总人口折线图')  # 添加图表标题
plt.savefig('../tmp/2000-2019年年末总人口折线图.png')
plt.show()

在这里插入图片描述

3.3点线图:点线融合

plt.figure(figsize=(9, 7))  # 设置画布
plt.plot(values[:, 0], values[:,1], color='r', linestyle='--', marker='o')  # 绘制折线图
plt.xlabel('年份')  # 添加横轴标签
plt.ylabel('年末总人口(万人)')  # 添加y轴名称
plt.xticks(range(0, 20), values[range(0, 20), 0], rotation=45)
plt.title('2000-2019年年末总人口点线图')  # 添加图表标题
plt.savefig('../tmp/2000-2019年年末总人口点线图.png')
plt.show()

在这里插入图片描述

plt.figure(figsize=(8, 7))  # 设置画布
plt.plot(values[:, 0], values[:, 2], 'bs-',
       values[:, 0], values[:,3], 'ro-.',
       values[:, 0], values[:, 4], 'gH--')  # 绘制折线图
plt.xlabel('年份')  # 添加横轴标签
plt.ylabel('年末总人口(万人)')  # 添加y轴名称
plt.xticks(range(0, 20), values[range(0, 20), 0], rotation=45)
plt.title('2000-2019年各年龄段总人口点线图')  # 添加图表标题
plt.legend(['0-14岁人口', '15-64岁人口', '65岁及以上人口'])
plt.savefig('../tmp/2000-2019年各年龄段总人口点线图.png')
plt.show()

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到