Python入门到放弃系列五

本文档介绍了Python数据可视化的项目,包括折线图的绘制、API的使用。在数据提取中展示了CSV数据的处理,并通过示例讲解了如何创建折线图、世界地图。此外,还涉及了使用API获取数据,如利用requests库进行接口测试和数据解析,以及将数据组合成条形图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

第二部分 项目-数据可视化

第十六章 下载数据

提取数据-折线图

日期测试

增加多个折线和中间填色(多个折线图)

世界地图

第十七章 使用API

安装requests

测试API接口&解析

组合Bar图表信息



第二部分 项目-数据可视化

第十六章 下载数据

读取CSV数据的头行信息

import csv

filename = '../data/csv_sitka_weather_07-2014.csv'
with open(filename) as f:
    reader = csv.reader(f)
    header_row = next(reader)
    print(header_row)

输出信息:

 ['AKDT', 'Max TemperatureF', 'Mean TemperatureF', 'Min TemperatureF', 'Max Dew PointF', 'MeanDew PointF', 'Min DewpointF', 'Max Humidity', ' Mean Humidity', ' Min Humidity', ' Max Sea Level PressureIn', ' Mean Sea Level PressureIn', ' Min Sea Level PressureIn', ' Max VisibilityMiles', ' Mean VisibilityMiles', ' Min VisibilityMiles', ' Max Wind SpeedMPH', ' Mean Wind SpeedMPH', ' Max Gust SpeedMPH', 'PrecipitationIn', ' CloudCover', ' Events', ' WindDirDegrees']

发现idea也有不好的时候比如for关键字不如sublime提示的多,估计还得自己配模板。

 

提取数据-折线图

import csv
from matplotlib import pyplot as plt

filename = '../data/csv_sitka_weather_07-2014.csv'
hights = []
with open(filename) as f:
    reader = csv.reader(f)
    header_row = next(reader)  # 读取头信息
    print(header_row)

    for row in reader:
        hights.append(row[1])  # 取高温信息

    print(hights)  # 打印所有的高温信息
    plt.figure(dpi=128, figsize=(10, 6))
    plt.plot(hights, c='red')
    plt.title('Daily high temperatures, July 2014', fontsize=24)
    plt.xlabel('', fontsize=14)
    plt.ylabel('Temperature (F)', fontsize=14)
    plt.tick_params(axis='both', which='major', labelsize=14)
    plt.show()

输出效果:

日期测试

import csv
from matplotlib import pyplot as plt
from datetime import datetime

filename = '../data/csv_sitka_weather_07-2014.csv'
hights, dates = [], []
with open(filename) as f:
    reader = csv.reader(f)
    header_row = next(reader)  # 读取头信息
    print(header_row)

    for row in reader:
        dates.append(datetime.strptime(row[0], "%Y-%m-%d"))  # 日期函数格式化日期信息
        hights.append(row[1])  # 取高温信息

    print(hights)  # 打印所有的高温信息
    print(dates)
    fig = plt.figure(dpi=128, figsize=(10, 6))
    plt.plot(dates, hights, c='red')
    plt.title('Daily high temperatures, July 2014', fontsize=24)
    plt.xlabel('', fontsize=14)
    plt.ylabel('Temperature (F)', fontsize=14)
    plt.tick_params(axis='both', which='major', labelsize=14)
    fig.autofmt_xdate()  # 斜的日期标签
    plt.show()

# 枚举输出每个表头信息
for index, header_column in enumerate(header_row):
    print(index, header_column)

输出结果:

增加多个折线和中间填色(多个折线图)

import csv
from matplotlib import pyplot as plt
from datetime import datetime

filename = '../data/csv_sitka_weather_2014.csv'
hights, lows, dates = [], [], []
with open(filename) as f:
    reader = csv.reader(f)
    header_row = next(reader)  # 读取头信息
    print(header_row)

    for row in reader:
        dates.append(datetime.strptime(row[0], "%Y-%m-%d"))  # 日期函数格式化日期信息
        hights.append(int(row[1]))  # 取高温信息,注意如果不转换 int,数轴可能乱序值
        lows.append(int(row[3]))
    print(hights)  # 打印所有的高温信息
    fig = plt.figure(dpi=128, figsize=(10, 6))
    plt.plot(dates, hights, c='red')
    plt.plot(dates, lows, c='blue')  # 增加一个低值得曲线
    plt.title('Daily high temperatures, July 2014', fontsize=24)
    plt.xlabel('', fontsize=14)
    plt.ylabel('Temperature (F)', fontsize=14)
    plt.tick_params(axis='both', which='major', labelsize=14)
    fig.autofmt_xdate()  # 斜的日期标签
    plt.fill_between(dates, hights, lows, facecolor='blue', alpha=0.1)  # 两个曲线之间涂颜色

    plt.show()

# 枚举输出每个表头信息
for index, header_column in enumerate(header_row):
    print(index, header_column)

输出效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值