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')

  • 相关阅读:
    goland设置goproxy是参数时Environment时的设置方法
    /etc/selinux/config模式修改
    python_matplotlib_中文字体
    tmux_server_version_is_too_old
    linux_shell_生成随机整数
    newifi_D2_新3_lede_扩容overlay_装可道云
    RSA.js_公钥加密_NoPadding_golang实现_n_e_pem格式互转
    python_matplotlib_Axisartist_作图_多个Y轴共用X轴
    @JsonProperty注解使用详解
    Filter中抛出异常@RestControllerAdvice注解无法捕获的问题
  • 原文地址:https://www.cnblogs.com/lixiaowei395659729/p/13488515.html
Copyright © 2011-2022 走看看