日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python如何繪制日歷圖和熱力圖

瀏覽:21日期:2022-07-14 17:13:40

本文以2019年全國各城市的空氣質量觀測數據為例,利用matplotlib、calmap、pyecharts繪制日歷圖和熱力圖。在繪圖之前先利用pandas對空氣質量數據進行處理。

2019年全國各城市空氣質量觀測數據來源于:https://beijingair.sinaapp.com。

數據處理

從網站下載的數據為逐小時數據,每天一個文件。如果要繪制全年的日歷圖或者熱圖,首先要將所有的數據進行合并處理。

下載好數據之后,將數據解壓到當前目錄的2019文件夾內,然后處理數據:

import globfrom datetime import datetime, timedeltaimport numpy as npimport pandas as pdfrom matplotlib import cm, colorsimport matplotlib.dates as mdatesimport matplotlib.patches as mpatchesimport matplotlib.pyplot as pltdef format_aqi(filep, columns=None): files = glob.glob(filep) df = pd.concat((pd.read_csv(f) for f in files)) df.index = pd.to_datetime(df.date.astype(np.str) + df.hour.apply(lambda x: ’%02d’%x), format=’%Y%m%d%H’) # drop date and hour columns df.drop([’date’, ’hour’], axis=1, inplace=True) df = df.pivot_table(columns=’type’, index=df.index) df.columns.names = [’station’, ’type’] df.index.names = [’date’] df = df.stack(’station’) if columns is not None: df = df.loc[:, columns] return dffilep = ’2019/china*.csv’ data = format_aqi(filep)data.csv(’2019.csv’) # 保存以便后續使用

合并完成數據后,讀取數據并進一步處理:

data = pd.read_csv(’2019.csv’, index_col=’date’, parse_dates=True)data2 = data.pivot_table(index=data.index, columns=[’station’])time_range = pd.date_range(datetime(2019, 10, 1, 0), datetime(2019, 12, 31, 23), freq=’1h’)idx = pd.IndexSliceaqi = data2.loc[:, idx[’AQI’, :]].xs(’AQI’, axis=1)aqi = aqi.reindex(time_range)cities = [’北京’, ’天津’, ’石家莊’, ’邯鄲’, ’濟南’, ’鄭州’, ’菏澤’, ’亳州’, ’徐州’, ’駐馬店’, ’南京’, ’合肥’, ’馬鞍山’, ’武漢’, ’上海’, ’杭州’, ’長沙’, ’南昌’, ’上饒’, ’溫州’, ’吉安’, ’贛州’, ’福州’, ’龍巖’, ’廈門’, ’泉州’ ]sub = aqi[cities[::-1]]

繪制熱力圖

因為空氣質量有專門的配色,首先設置對應等級的colormap

colors_aqi = [’#009966’, ’#FFDE33’, ’#FF9A32’, ’#CC0033’, ’#660099’]levels = [0, 50, 100, 150, 200, 300]cmap_aqi = colors.ListedColormap(colors_aqi) norm = colors.BoundaryNorm(levels, cmap_aqi.N)

然后,開始繪圖:

fig, ax = plt.subplots(figsize=(16, 9))con = ax.pcolormesh(sub.index.values,np.arange(0, sub.columns.shape[0]+1),sub.T,cmap=cmap_aqi,norm=norm,vmin=0, vmax=300 )sdate = datetime(2019, 10, 1)edate = datetime(2019, 12, 31)xticks = pd.date_range(sdate, edate, freq=’15d’)ax.set_xlim([sdate, edate])ax.set_xticks(xticks)ax.set_xticklabels([i.strftime(’%m/%d’) for i in xticks])ax.set_yticks(np.arange(0.5, len(cities)))_ = ax.set_yticklabels(sub.T.index.values, fontdict={’family’: ’SimHei’, ’fontsize’: 16})ytext = [i.get_text() for i in list(ax.get_yticklabels())]cb = fig.colorbar(con, extend=’max’, pad=0.02, extendrect=True, extendfrac=0.2)cb.cmap.set_over(’#7D0023’)cb.ax.tick_params(axis=’both’, direction=’in’, length=0)_ = cb.ax.set_ylabel(’Air Quality Index(AQI)’, fontdict={’family’: ’Times New Roman’})

Python如何繪制日歷圖和熱力圖

2019年10月-12月各城市的AQI日變化

繪制日歷圖

python中關于繪制日歷圖的工具相對較少,沒有特別有些的工具。下面分別使用calmap和pyecharts繪制日歷圖。

注意:calmap已經放棄維護了,在使用過程中可能會存在問題。本文fork了原來的源碼,解決了可能遇到的問題。可以從https://github.com/bugsuse/calmap下載源碼,然后執行python setup.py install進行安裝即可。

注意:本文為了簡單起見,利用AQI繪圖時,直接對AQI求日均值,但是實際情況下是不能直接這樣計算的。

import calmapdd = data[data.station == ’北京’].AQI.resample(’1d’).mean()fig, ax = plt.subplots(figsize=(18, 9))cmp = calmap.yearplot(dd, how=None, year=2019, cmap=cmap_aqi, norm=norm, vmin=0, vmax=300, )ax2 = fig.add_axes([0.94, 0.4, 0.015, 0.2])cb1 = mpl.colorbar.ColorbarBase(ax2, cmap=cmap_aqi, ticks=levels, norm=norm, orientation=’vertical’, extend=’max’, extendrect=True, extendfrac=0.15)cb1.cmap.set_over(’#7D0023’)cb1.set_ticks([25, 75, 125, 175, 250])cb1.ax.set_yticklabels([u’優’, u’良’, u’輕度污染’, u’中度污染’, u’重度污染’], fontdict={’fontsize’: 16, ’family’: ’SimHei’}) cb1.ax.yaxis.set_tick_params(length=0.01)ax2.text(1.13, 1.07, ’嚴重污染’, fontdict={’fontsize’:16, ’family’:’SimHei’})ax.set_ylabel(’2019’, fontdict=dict(fontsize=26, color=’grey’))

Python如何繪制日歷圖和熱力圖

2019年北京市AQI日歷圖

下面利用pyecharts繪制2019年北京市AQI日歷圖。

from pyecharts import options as optsfrom pyecharts.charts import Calendarbegin = datetime(2019, 1, 1)end = datetime(2019, 12, 31)data = [ [str(begin + timedelta(days=i)), dd[i]] for i in range((end - begin).days + 1)]c = ( Calendar() .add( '', data, calendar_opts=opts.CalendarOpts( range_=’2019’, daylabel_opts=opts.CalendarDayLabelOpts(name_map=’cn’), monthlabel_opts=opts.CalendarMonthLabelOpts(name_map=’cn’), ), ) .set_global_opts( title_opts=opts.TitleOpts(title=’2019年北京市每日AQI(Air Quality Index)’, pos_left=’center’), visualmap_opts=opts.VisualMapOpts( max_=300, min_=0, range_size=[0, 50, 100, 150, 200, 300], pieces= [{’min’: 0, ’max’: 50}, {’min’: 51, ’max’: 100}, {’min’: 101, ’max’: 150}, {’min’: 151, ’max’: 200},

Python如何繪制日歷圖和熱力圖

2019年北京市AQI日歷圖

繪制熱力圖也可以使用seaborn,不需要單獨碼很多代碼,而且功能要更多一些。python在繪制日歷圖方面不是非常友好,相比之下,pyecharts更有優勢。但是pyecharts更適合線上可視化展示,不太適合制作用于發表論文的圖。

這次就說到這了,感興趣的可以去嘗試一下。

以上就是Python如何繪制日歷圖和熱力圖的詳細內容,更多關于Python繪制日歷圖和熱力圖的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩精品久久久久久久软件91| 人在线成免费视频| 激情久久五月| 91精品国产福利在线观看麻豆| 啪啪国产精品| 精精国产xxxx视频在线播放| 亚洲h色精品| 欧美在线亚洲| 丝袜美腿亚洲色图| 一区二区电影| 日韩和欧美的一区| 国产精品一区二区av交换| 另类欧美日韩国产在线| 亚洲www啪成人一区二区| 久久精品91| 亚洲午夜免费| 欧美亚洲福利| 国产一区二区三区精品在线观看| 国产资源在线观看入口av| 高潮一区二区| 日韩一区三区| 中文一区二区| 欧美在线日韩| 老司机免费视频一区二区| 免费看av不卡| 中文一区二区| 国产精品一线| 久久久久国产| 日韩高清不卡一区二区| 国产a亚洲精品| 尤物精品在线| 国产精品一区毛片| 亚洲伦乱视频| 亚洲人成高清| 精品一区91| 欧美女激情福利| 欧美久久亚洲| 久久中文亚洲字幕| 欧美日本不卡| 欧美日韩在线网站| 日本不卡高清| 美女一区网站| 日本在线一区二区三区| 色综合五月天| 欧美日韩四区| 国产欧洲在线| 日韩在线观看中文字幕| 日韩视频在线一区二区三区| 日韩久久99| 日韩av网站在线观看| 久久久精品国产**网站| 美女少妇全过程你懂的久久| 日韩成人精品一区二区三区 | 国产国产精品| 欧美日韩va| 亚洲午夜av| 国产欧美日韩精品高清二区综合区| 色爱av综合网| 国产欧美88| 亚洲激情社区| 超级白嫩亚洲国产第一| 中文一区一区三区免费在线观| 久久精品理论片| 亚洲制服一区| 99精品小视频| 国产精品三级| 中文字幕亚洲影视| 999视频精品| 国产精品久久国产愉拍| 免费国产自线拍一欧美视频| 精品国产亚洲一区二区三区在线 | 国产精品theporn| 国产麻豆综合| caoporn视频在线| 免费成人在线视频观看| 国产高清不卡| 国产日韩欧美一区二区三区在线观看 | 国产视频欧美| 国产精品久久久久久久久妇女| 免费美女久久99| 亚洲二区免费| 激情久久99| 国产欧美一区二区三区米奇| 蜜桃伊人久久| 免费欧美一区| 精品72久久久久中文字幕| 91成人在线网站| 免费人成精品欧美精品| 亚洲国产成人精品女人| 日韩成人亚洲| 精品女同一区二区三区在线观看| 日本aⅴ免费视频一区二区三区| 免费在线观看精品| 99在线|亚洲一区二区| 亚洲二区免费| 久久理论电影| 91精品一区国产高清在线gif| 成人国产精品一区二区免费麻豆| 国产精品igao视频网网址不卡日韩| 亚洲综合五月| 女同性一区二区三区人了人一 | 国产一区二区三区自拍| 国产精品久久久久av电视剧| 日韩88av| 黄色在线观看www| 最新亚洲国产| 国产综合亚洲精品一区二| 蜜桃久久av| 久久久9色精品国产一区二区三区| 国产成人精品一区二区免费看京| 国产精品一区二区三区四区在线观看 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 91偷拍一区二区三区精品| 国产精品日韩精品在线播放| 欧美日韩亚洲国产精品| 日本午夜精品| 国产欧美大片| 麻豆一区二区99久久久久| 国产高清视频一区二区| 四虎精品永久免费| 日本天堂一区| 国产精品国产三级在线观看| 国产高清亚洲| 久久精品国内一区二区三区| 久久精品国产网站| а√天堂8资源在线| 亚洲播播91| 伊人久久婷婷| 综合激情一区| 国产色99精品9i| 精品国产乱码久久久久久1区2匹| 91精品在线免费视频| 国产乱人伦精品一区| 国产精品s色| 国产精品v日韩精品v欧美精品网站 | 日韩精品不卡一区二区| 伊人久久高清| 国产日韩综合| 日韩黄色av| 久久69成人| 99国产精品一区二区| 亚洲一区网站| 日韩av成人高清| 国产一区调教| 久久在线免费| 亚洲精品护士| 精品亚洲二区| 久久精品免费一区二区三区| 亚洲在线成人| 国产精品久久久久9999高清| 色网在线免费观看| 一本色道精品久久一区二区三区| 日本在线不卡视频| 精品国产三区在线| 四虎影视精品| 色综合视频一区二区三区日韩 | 婷婷成人av| 精品视频一区二区三区在线观看| 久久精品影视| 日韩在线黄色| 亚洲啊v在线| 91精品福利| 91精品国产自产精品男人的天堂 | 久久精品伊人| 每日更新成人在线视频| 久热综合在线亚洲精品| 精品香蕉视频| 日韩高清欧美| 亚洲专区在线| 国产精品地址| 亚洲韩日在线| 青草av.久久免费一区| 欧美日韩在线观看首页| 99久久亚洲精品| 日本不卡高清| 亚洲深夜视频| 免费人成在线不卡| 精品一区二区三区亚洲| 在线综合亚洲| 精品国产91| 中文一区一区三区免费在线观 | 国产91在线精品| 国产免费成人| 国产一区二区三区久久久久久久久| 成人va天堂| 午夜欧美精品久久久久久久| 国产精品99久久精品| 日韩亚洲精品在线| 国产精品超碰| 午夜在线播放视频欧美| 麻豆精品蜜桃视频网站| 午夜日韩在线| 丁香婷婷久久| 中文字幕av一区二区三区四区| 精品国产亚洲一区二区在线观看| 亚洲欧美日韩综合国产aⅴ| 欧美色综合网| 西西人体一区二区| 色偷偷色偷偷色偷偷在线视频| 亚洲精品福利|