在上篇文章中,我們簡(jiǎn)要地討論了如何使用web數(shù)據(jù)在Python中創(chuàng)建一個(gè)圖形,但是如果我們所能做的只是在Python中顯示一個(gè)繪制的圖形,那么它就沒有那么大的用處了。假如用戶不知道如何運(yùn)行Python并重新這個(gè)繪制圖形呢?解決方案是使用Excel作為顯示結(jié)果的媒介,因?yàn)榇蠖鄶?shù)人的電腦上都安裝有Excel。因此,我們只需將Python生成的圖形保存到Excel文件中,并將電子表格發(fā)送給用戶。 根據(jù)前面用Python繪制圖形的示例(參見:在Python中繪圖),在本文中,我們將: 1)美化這個(gè)圖形, 2)將其保存到Excel文件中。 美化圖表 之前我們生成的這個(gè)圖,盡管對(duì)于2行代碼來(lái)說并不太糟糕,但該圖與專業(yè)級(jí)圖相差甚遠(yuǎn),所以讓我們使它更漂亮。 圖1 我們將使用matplotlib修改繪圖格式。由于這不是本文的主題,所以不會(huì)詳細(xì)介紹下面的代碼。后續(xù)文章中會(huì)有講解。 import pandas as pd import matplotlib.pyplot as plt from matplotlib.ticker import ( FormatStrFormatter, AutoMinorLocator, FuncFormatter, ) import matplotlib.dates as mdates from matplotlib.dates import DateFormatter df =pd.read_csv('https://raw./CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv') df = df.iloc[:,4:] global_num = df.sum() fig, ax = plt.subplots() ax.set(title = 'Global CovidConfirmed Cases', xlabel = 'Time', ylabel = 'Number of cases') ax.yaxis.set_major_formatter(FuncFormatter(lambdax, p: format(x/1000000) +'M')) date_form = DateFormatter('%m-%d') ax.xaxis.set_major_formatter(date_form) locator = mdates.DayLocator() ax.xaxis.set_major_locator(locator) ax.xaxis.set_major_locator(mdates.WeekdayLocator(interval=3)) ax.yaxis.grid() dates = pd.to_datetime(global_num.index) plt.plot(dates, global_num) plt.show() 圖2 將Python生成的圖形保存到Excel文件中 我們需要先把圖形保存到電腦里。 plt.savefig(r'D:\python_pretty_plot.png') 然后可以使用xlsxwriter庫(kù)創(chuàng)建一個(gè)Excel文件。要將確認(rèn)病例數(shù)據(jù)保存到Excel中,執(zhí)行以下操作: writer = pd.ExcelWriter(r'D:\Python_plot.xlsx',engine = 'xlsxwriter') global_num.to_excel(writer,sheet_name='Sheet1') 然后,將圖像添加到該工作表: worksheet = writer.sheets['Sheet1'] worksheet.insert_image('C2','D:\python_pretty_plot.png') writer.save() 注:本文學(xué)習(xí)整理自pythoninoffice.com。
|
|
來(lái)自: hercules028 > 《Python and AI》