python数据分析中常见图形绘制及方法

       Python作为一种高级编程语言,其绘图库丰富,包括了绘制折线图、散点图、饼图、直方图、箱线图等各种类型图表,成为科学计算、数据可视化领域不可或缺的工具。Python绘图的意义不仅在于美观的图表展示,更是通过数据可视化,实现对大数据的探索分析、结论提炼和决策分析。

      在Python数据分析中,数据清洗是非常重要的一步,它涉及到对原始数据进行清洗、处理和转换,以便更好地进行后续的数据分析和可视化。以下是一些常见的数据清洗方法:

  1. 缺失值处理:对于缺失的数据,可以采用插值、删除或填充等方法进行处理。常用的插值方法有线性插值、多项式插值等。如果缺失值较多,可以考虑删除含有缺失值的行或列。
  2. 异常值处理:对于异常值,可以采用删除、替换或基于统计的方法进行处理。例如,可以使用箱线图等方法识别异常值,然后进行删除或替换。
  3. 数据类型转换:对于不同类型的数据,需要进行转换以便进行后续的分析和可视化。例如,将分类数据转换为数值型数据,或将日期数据转换为时间序列数据。

     在Python数据分析中,常用的图形绘制库包括matplotlib:matplotlib是Python中最常用的绘图库之一,支持多种绘图类型和风格,包括折线图、散点图、直方图、箱线图等。它的优点是功能强大、灵活度高,但同时也需要较多的代码来实现绘图。

一、折线图

     优势:折线图能够查看时间序列数据的波动趋势

     数据收集方式:通过实验、观测或调查问卷等方式收集时间序列数据,例如温度、销售额等

     折线图(Line Chart):用于展示数据随时间或其他变量的变化趋势。可以使用matplotlib库中的plot函数来绘制折线图。

import matplotlib.pyplot as plt  
# 示例数据  
x = [1, 2, 3, 4, 5]  
y = [2, 4, 6, 8, 10]    
# 绘制折线图  
plt.plot(x, y)  
plt.show()

比如:

import pandas as pd 
import matplotlib.pyplot as plt
df_stock = pd.read_excel('E:/wst/股价数据.xlsx')
df_stock
# 升序排序
df_stock = df_stock.sort_values(by='date').reset_index(drop=True)
df_stock
# 数据准备
x = df_stock['date']
y1 = df_stock['close']
y2 = df_stock['ma20']
# 画折线图
plt.rcParams['font.family'] = 'SimHei' # 解决中文乱码
plt.plot(
    x,
    y1,'-',
    y2,'--'
)
plt.title('股票的收盘价(close)和20日均线(ma20)折线图')
# 只倾斜显示部分x轴刻度
plt.xticks([0,100,200,300,400,500,600],rotation=15) 
plt.show()

运行结果:

二、散点图

   优势:能够查看两个序列数据之间的相关关系

   数据收集方式:可以通过实验、观测或调查问卷等方式收集两个变量的数据,例如身高和体重、广告和销售额等

   散点图(Scatter Plot):用于展示两个变量之间的关系,以及数据点的分布情况。可以使用matplotlib库中的scatter函数来绘制散点图。

import matplotlib.pyplot as plt  
# 示例数据  
x = [1, 2, 3, 4, 5]  
y = [2, 4, 6, 8, 10]   
# 绘制散点图  
plt.scatter(x, y)  
plt.show()

比如:

import pandas as pd 
import matplotlib.pyplot as plt

# 画图
plt.rcParams['font.family'] = 'SimHei' # 解决中文乱码
plt.scatter(
    df_book['浏览量'],
    df_book['成交商品件数'],
    s = 1
)
plt.xlabel('浏览量')
plt.ylabel('成交数量')
plt.xlim(0,5000)
plt.ylim(0,500)
plt.show()

运行结果:

三、直方图

      优势:能够查看序列数据的分布情况

      数据收集方式:可以通过实验、观测或调查问卷等方式收集连续变量的数据,例如考试成绩、用户年龄等。

       直方图(Histogram):用于展示数据的分布情况,特别是连续变量的概率分布。可以使用matplotlib库中的hist函数来绘制直方图。

import matplotlib.pyplot as plt  
import numpy as np    
# 示例数据  
data = np.random.randn(1000)  
# 绘制直方图  
plt.hist(data, bins=30)  
plt.show()

比如:

import pandas as pd 
import matplotlib.pyplot as plt

df_air = pd.read_excel('../数据集/航空公司数据.xlsx')
df_air

# 画图
plt.rcParams['font.family'] = 'SimHei' # 解决中文乱码
min_age = int(df_air['年龄'].min()) # 最小客户年龄
max_age = int(df_air['年龄'].max()) # 最大客户年龄
plt.hist(
    df_air['年龄'],
    bins = [i for i in range(min_age,max_age,5)] # 以5为组距构造一个年龄区间列表
)
plt.title('用户年龄分布图')
plt.xlabel('年龄区间')
plt.ylabel('人数')
plt.show()

运行结果:

四、箱线图

      优势:能够查看序列数据的分布情况。通过最小值、最大值和四分位数来表示数据分布;箱线图通过圆点来显示序列的异常值

     数据收集方式:可以通过实验、观测或调查问卷等方式收集一组数据,例如不同地区的销售额、不同学校的考试成绩等。

     箱线图(Box Plot):用于展示一组数据的分布情况,特别是中位数、四分位数等统计指标。可以使用matplotlib库中的boxplot函数来绘制箱线图。

import matplotlib.pyplot as plt  
import numpy as np  
# 示例数据  
data = np.random.randn(1000)    
# 绘制箱线图  
plt.boxplot(data)  
plt.show()

比如:

import pandas as pd 
import matplotlib.pyplot as plt

# 查看年龄序列中的空值
df_air['年龄'].isnull().sum()

# 数据准备,剔除空值
x1 = df_air.query('性别=="男"')['年龄'].dropna()
x2 = df_air.query('性别=="女"')['年龄'].dropna()

# 画图
plt.rcParams['font.family'] = 'SimHei' # 解决中文乱码
plt.boxplot(
    [x1,x2],
    vert = False,
    labels = ['男','女'],
    whis = 3 # 放宽上下限的宽度,减少异常值的定义,尝试注释本行运行查看差异
)
plt.show()

运行结果:

     

注意事项:

  1. 在选择图形时,要根据数据的特点和需求进行选择,不同的图形适用于不同的数据类型和需求。
  2. 在绘制图形时,要注意图形的美观性和可读性,例如设置合适的颜色、标签、标题等,以便更好地展示数据和分析结果。
  3. 在进行数据分析和可视化时,要保持客观性和准确性,避免出现误导性的结果和结论。

总之,Python数据分析中常见图形及绘制是数据分析的重要组成部分,通过掌握各种常见图形及其绘制方法,可以提高数据分析和可视化的效率和质量,为决策提供有力的支持。

  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值