首页 > 其他 > 详细

p16-下载数据

时间:2021-04-24 16:52:05      阅读:15      评论:0      收藏:0      [点我收藏+]
import csv
from datetime import datetime

from matplotlib import pyplot as plt

filename = data/sitka_weather_2018_simple.csv
with open(filename) as f:
    reader = csv.reader(f)
    header_row = next(reader)

    # 从文件中获取 日期 和最高温度 和最低温度
    dates, highs, lows = [], [], []
    for row in reader:
        # strptime 格式化日期
        current_date = datetime.strptime(row[2], %Y-%m-%d)
        dates.append(current_date)
        high = int(row[5])
        highs.append(high)
        low = int(row[6])
        lows.append(low)

# 最高温度和最低温度
plt.style.use(seaborn)
fig, ax = plt.subplots()
# alpha 是颜色的透明度
ax.plot(dates, highs, c=red, alpha=0.5)
ax.plot(dates, lows, c=blue, alpha=0.5)
# fill_between 接收x y系列的值并且填充
ax.fill_between(dates, highs, lows, facecolor=blue, alpha=0.1)

# 设置图形的格式
plt.title("2018年每日最高温度", fontsize=24)
plt.xlabel(‘‘, fontsize=16)
fig.autofmt_xdate()
plt.ylabel("温度 (F)", fontsize=16)
plt.tick_params(axis=both, which=major, labelsize=16)
# RuntimeWarning: Glyph missing fromcurrent font. font.set_text(s, 0, flags=flags)解决方案
# 警告原因:plt 画图是找不到字体,需要添加两行程序,如下:
# 建议放到最后  因为之前使用样式可能设置会被覆盖
plt.rcParams[font.sans-serif] = [SimHei]  # 显示中文标签
plt.rcParams[axes.unicode_minus] = False
plt.show()

 

import csv
from datetime import datetime

from matplotlib import pyplot as plt

filename = data/death_valley_2018_simple.csv
with open(filename) as f:
    reader = csv.reader(f)
    header_row = next(reader)

    # 从文件中获取日期 最高 最低 温度
    dates, highs, lows = [], [], []
    for row in reader:
        current_date = datetime.strptime(row[2], %Y-%m-%d)
        try:
            high = int(row[4])
            low = int(row[5])
        except ValueError:
            print(f"Missing data for {current_date}")
        else:
            dates.append(current_date)
            highs.append(high)
            lows.append(low)

# 最高温度和最低温度
plt.style.use(seaborn)
fig, ax = plt.subplots()
ax.plot(dates, highs, c=red, alpha=0.5)
ax.plot(dates, lows, c=blue, alpha=0.5)
plt.fill_between(dates, highs, lows, facecolor=blue, alpha=0.1)

# Format plot.
title = "2018年每日最高温度和最低温度 \n 美国加利福尼亚州死亡谷"
plt.title(title, fontsize=20)
plt.xlabel(‘‘, fontsize=16)
fig.autofmt_xdate()
plt.ylabel("温度 (F)", fontsize=16)
plt.tick_params(axis=both, which=major, labelsize=16)

plt.rcParams[font.sans-serif] = [SimHei]  # 显示中文标签
plt.rcParams[axes.unicode_minus] = False
plt.show()

 

处理CVS文件

import json

filename = data/eq_data_30_day_m1.json
with open(filename) as f:
    all_eq_data = json.load(f)
all_eq_dicts = all_eq_data[features]
mags, titles, lons, lats = [], [], [], []
for eq_dict in all_eq_dicts:
    mag = eq_dict[properties][mag]
    title = eq_dict[properties][title]
    lon = eq_dict[geometry][coordinates][0]
    lat = eq_dict[geometry][coordinates][1]
    mags.append(mag)
    titles.append(title)
    lons.append(lon)
    lats.append(lat)


if __name__ == __main__:
    print(mags[:5])
    print(titles[:5])
    print(lons[:5])
    print(lats[:5])
import json
import plotly.express as px
import pandas as pd


filename = data/eq_data_30_day_m1.json
with open(filename) as f:
    all_eq_data = json.load(f)
all_eq_dicts = all_eq_data[features]
mags, titles, lons, lats = [], [], [], []
for eq_dict in all_eq_dicts:
    mag = eq_dict[properties][mag]
    title = eq_dict[properties][title]
    lon = eq_dict[geometry][coordinates][0]
    lat = eq_dict[geometry][coordinates][1]
    mags.append(mag)
    titles.append(title)
    lons.append(lon)
    lats.append(lat)

data = pd.DataFrame(
    data=zip(lons, lats, titles, mags), columns=[经度, 纬度, 位置, 震级]
)
data.head()

fig = px.scatter(
    data,
    x=经度,
    y=纬度,
    range_x=[-200, 200],
    range_y=[-90, 90],
    width=800,
    height=800,
    title=全球地震散点图,
    size=震级,
    size_max=10,
    color=震级,
    hover_name=位置,
)
fig.write_html(global_earthquakes.html)
fig.show()


# if __name__ == ‘__main__‘:
#     print(mags[:5])
#     print(title[:5])
#     print(lons[:5])
#     print(lats[:5])

 

处理json文件 并且绘制散点图

 有其他语言基础学习很简单

p16-下载数据

原文:https://www.cnblogs.com/beastGentleman/p/14696650.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!