对连续型数据,用pandas和plt进行折线图分析

PM2.5数据分析
本文介绍了一种分析连续型数据的方法,以PM2.5浓度为例,展示了如何处理时间序列数据,包括数据清洗、降采样及绘图展示。结果显示冬季PM2.5浓度较高。

此次分享一个分析连续型数据的案例。目前市场上会常用此方法去观察金融数据,销量数据等问题的分析。 数据真实,采集自某网站。

这里拿过来的数据,时间字段是分开了,首先做了个预处理,把时间整合下,并添加到“datetime”字段中。然后,再以datetime为索引,“PM_US Post”为目标值,生成一个新的二维数组。接着进行画图,在画图的时候,发现数据太离散了,效果不好,于是进行了降采集,以星期为单位,每个信息的目标值为去这个星期里的数据的平均值。数据中缺失值的地方,这里采用删除的方法进行处理。然后再进行绘制.

import pandas as pd
from matplotlib import pyplot as plt

file_path="./BeijingPM20100101_20151231.csv"

def Handledata(file_path):
    df =pd.read_csv(file_path)
    print(df.head(1))
    # print(df.info())
    #把分开的时间字符串通过periodindex的方法转化为pandas的时间类型
    period=pd.PeriodIndex(year=df['year'],month=df['month'],day=df['day'],hour=df['hour'],freq='H')
    df['datetime']=period
    #print(df.head(1))
    # print(period)
    # print(type(period))
    #把datetime设置为索引

    df.set_index("datetime",inplace=True)
    #进行降采集
    df=df.resample("7D").mean()
    print(df.shape)

    #处理缺失数据,删除缺失数据
    print(df['PM_US Post'])
    data=df['PM_US Post'].dropna()
    return data
def Draw(data,):
    _x =data.index
    _x = [i.strftime("%Y%m%d") for i in _x]
    _y=data.values

    plt.figure(figsize=(20,8),dpi=80)

    plt.plot(range(len(_x)),_y,label='us_post')


    plt.xticks(range(0,len(_x),10),list(_x)[::10],rotation=45)

if __name__ == '__main__':
    data=Handledata(file_path)
    Draw(data)
    plt.legend()
    plt.show()

原始数据样式:
在这里插入图片描述
添加datetime字段后为:
在这里插入图片描述
以datetime为索引,PM_US Post为目标值,再按星期降维采集后的样式:
在这里插入图片描述
最后运行结果:
在这里插入图片描述

这个是关于pm2.5的数据,大致可以看出 每年冬天的时候,pm2.5 危害最大,所以 冬天的时候,出门得戴口罩哦!

### 科研数据分析中使用折线图 在科研数据分析领域,折线图是一种常见的用于表示连续变量随时间或其他有序类别变化的有效工具。通过这种图表形式,研究人员能够清晰地观察到数据的变化趋势以及不同组之间的对比情况。 #### Matplotlib绘制折线图 利用Matplotlib库可以轻松实现基础的折线图绘制功能。对于简单的单条或多条折线图来说,只需要准备好相应的X轴Y轴的数据序列即可完成作图操作[^1]: ```python import matplotlib.pyplot as plt # 示例数据准备 x_values = [0, 1, 2, 3, 4, 5] y_values_1 = [v ** 2 for v in x_values] y_values_2 = [(v - 1) * (v - 1) for v in x_values] plt.figure(figsize=(8, 6)) plt.plot(x_values, y_values_1, label='Line 1') plt.plot(x_values, y_values_2, linestyle='--', color='red', label='Dashed Line') # 添加标题与坐标轴标签 plt.title('Simple Line Plot Example') plt.xlabel('X Axis Label') plt.ylabel('Y Axis Label') # 显示图例 plt.legend() # 展示图像 plt.show() ``` 此段代码展示了如何创建一个包含两条折线的基础图形,并设置了不同的样式属性以便区分各个线条所代表的信息。 #### Seaborn增强版折线图 相较于Matplotlib更为简洁易用的是Seaborn库,在处理复杂场景下的多维度数据集时尤为突出。Seaborn内置了许多高级别的函数可以直接生成带有统计意义的视觉效果良好的折线图,比如`lineplot()`方法就非常适合用来分析实验结果或者观测记录等具有明显时间顺序特征的数据集合[^2]: ```python import seaborn as sns import pandas as pd # 构建样本DataFrame对象 data_frame = pd.DataFrame({ 'time': ['Day 1', 'Day 2', 'Day 3'], 'value_A': [10, 15, 7], 'value_B': [9, 12, 8] }) # 将宽表转换成长表结构适应seaborn输入格式 df_melted = data_frame.melt(id_vars=['time'], var_name='variable', value_name='value') sns.set_theme(style="darkgrid") # 绘制带置信区间的折线图 sns.lineplot(data=df_melted, x='time', y='value', hue='variable', ci=95) # 设置图表标题及各轴名称 plt.title('Enhanced Line Chart with Confidence Interval') plt.xlabel('Time Points') plt.ylabel('Values') # 输出最终效果图 plt.show() ``` 上述实例说明了怎样借助于Pandas进行必要的预处理工作之后再调用Seaborn提供的接口快速构建出既美观又富含信息量的折线型视图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值