zoukankan      html  css  js  c++  java
  • 第十六章 下载数据

    1.打印第一列的值并且追到到列表中

    filename='D:\weather.csv'
    with open(filename) as f:
        reader=csv.reader(f)
        header_row=next(reader)
        highs=[]
        for row in reader:
          high=int(row[1])
          highs.append(high)
        print(highs)

    2.绘制高温折线图

    import csv
    import matplotlib.pyplot as plt
    filename='D:\weather.csv'
    with open(filename) as f:
        reader=csv.reader(f)
        header_row=next(reader)
        highs=[]
        for row in reader:
          high=int(row[1])
          highs.append(high)
        print(highs)
    #用数据绘制图形
    fig=plt.figure(dpi=128,figsize=(10,6))
    #设置颜色
    plt.plot(highs,c='red')
    #设置图形格式
    plt.title("Daily high temperatures,july 2014",fontsize=14)
    plt.xlabel('',fontsize=16)
    plt.ylabel('temperatures',fontsize=16)
    plt.tick_params(axis='both',which='major',labelsize=16)
    plt.show()

     3.加上日期

    import csv
    from datetime import datetime
    import matplotlib.pyplot as plt
    filename='D:\weather.csv'
    with open(filename) as f:
        reader=csv.reader(f)
        header_row=next(reader)
        dates,highs=[],[]
        for row in reader:
            current_Date=datetime.strptime(row[0],"%Y/%m/%d")
            dates.append(current_Date)
            high=int(row[1])
            highs.append(high)
    #绘制图形
    fig=plt.figure(dpi=128,figsize=(10,6))
    plt.plot(dates,highs,c='red')
    #设置数据绘制图形,设置图形的格式
    plt.title("Daily high",fontsize=24)
    plt.xlabel('',fontsize=16)
    #绘制斜标签
    fig.autofmt_xdate()
    plt.ylabel('',fontsize=16)
    plt.tick_params(axis='both',which='major',labelsize=16)
    plt.show()

    4.添加最低气温

    import csv
    from datetime import datetime
    import matplotlib.pyplot as plt
    filename='D:\weatherTime.csv'
    with open(filename) as f:
        reader=csv.reader(f)
        header_row=next(reader)
        dates,highs,lows=[],[],[]
        for row in reader:
            try:
             current_Date=datetime.strptime(row[0],"%Y-%m-%d")
             high=int(row[1])
             low=int(row[3])
            except ValueError:
             print("sorry,data not to get")
            else:
             dates.append(current_Date)
             highs.append(high)
             lows.append(low)
    #绘制图形,alpha 是颜色的透明度
    fig=plt.figure(dpi=128,figsize=(10,6))
    plt.plot(dates,highs,c='red',alpha=0.5)
    plt.plot(dates,lows,c='red',alpha=0.5)
    plt.fill_between(dates,highs,lows,facecolor='blue',alpha=0.1)
    #设置数据绘制图形,设置图形的格式
    plt.title("Daily high and low for 2014",fontsize=24)
    plt.xlabel('',fontsize=16)
    #绘制斜标签
    fig.autofmt_xdate()
    plt.ylabel('',fontsize=16)
    plt.tick_params(axis='both',which='major',labelsize=16)
    plt.show()

    5 获取json 数据

    import json
    filename='E:population_data.json'
    with open(filename) as f:
        data=json.load(f)
    for pop_dict in data:
        if pop_dict['Year'] =='2010':
            coutry_name=pop_dict['Country Name']
            population=int(float(pop_dict['Value']))
            print(coutry_name+": "+str(population))

     3.获取国别码

    import pygal.maps.world
    def getCountryName(coutry_name):
      for code,name in pygal.maps.world.COUNTRIES.items():
          if name == coutry_name:
              return code
      return None
    
    if __name__ == '__main__':
       print(getCountryName("Andorra"))import json
    
    

    绘制人口地图

    import json
    import pygal
    from pygal.style import RotateStyle
    from GetCountryName import getCountryName
    filename = 'E:population_data.json'
    with open(filename) as f:
        pop_data = json.load(f)
    cc_populations = {}
    for pop_dict in pop_data:
        if pop_dict['Year'] == '2010':
            country = pop_dict['Country Name']
            population = int(float(pop_dict['Value']))
            code=getCountryName(country)
            if code:
                cc_populations[code]=population
    #将人口数量的所有国家分成3个组
    cc1,cc2,cc3={},{},{}
    for cc,pop in cc_populations.items():
        if pop<10000000:
            cc1[cc]=pop
        elif pop<1000000000:
            cc2[cc]=pop
        else:
            cc3[cc]=pop
    wm_style=RotateStyle('#336699')
    wm = pygal.maps.world.World(style=wm_style)
    wm.title='Wolrd population in 2010,by Country'
    wm.add('0-10m',cc1)
    wm.add('10m-1bn',cc2)
    wm.add('>1bn',cc3)
    wm.render_to_file('world_population.svg')

  • 相关阅读:
    P2761 软件补丁问题
    CF1335F Robots on a Grid
    [bzoj2088]P3505 [POI2010]TEL-Teleportation
    CF1335E Three Blocks Palindrome
    P3831 [SHOI2012]回家的路
    P4568 [JLOI2011]飞行路线(分层图)
    P4774 [NOI2018]屠龙勇士
    P2480 [SDOI2010]古代猪文
    CF #632 (Div. 2) 对应题号CF1333
    BSGS 和扩展
  • 原文地址:https://www.cnblogs.com/lixiaowei395659729/p/13488515.html
Copyright © 2011-2022 走看看