Hướng dẫn pandas save plot to excel - gấu trúc lưu cốt truyện vào excel

Tôi sử dụng Python 3,4, Pandas 0.14.1 và xlsxwriter 0.5.6. Tôi tạo một biểu đồ được gọi là 'biểu đồ' bằng cách sử dụng gấu trúc với mã sau

 graph=data_iter['_DiffPrice'].hist() 

, trong đó tạo ra một biểu đồ đẹp.

Bây giờ, làm cách nào để chèn đồ thị đó vào một tệp excel bằng xlsxwriter?

Tôi đã thử phương thức xlsxwriter

workbook.add_chart()

Nhưng điều này tạo ra một biểu đồ trong Excel, không phải những gì tôi muốn.

Cảm ơn

Chúng tôi đã nói ngắn gọn về cách tạo biểu đồ bằng Python bằng dữ liệu web, nhưng nó không hữu ích nếu tất cả những gì chúng ta có thể làm là hiển thị một cốt truyện trong Python. Điều gì sẽ xảy ra nếu khán giả của chúng tôi không biết cách chạy Python và sản xuất lại cốt truyện? Giải pháp yêu thích của tôi là sử dụng Excel làm phương tiện để trình bày kết quả, bởi vì ngày nay, hầu hết mọi người đều có Excel trên máy tính của họ. Vì vậy, chúng tôi chỉ cần lưu các lô được tạo ra Python vào một tệp Excel và gửi bảng tính cho khán giả!

Hướng dẫn này là một phần của loạt Python tích hợp với Excel, bạn có thể tìm thấy & nbsp; Bảng nội dung ở đây & nbsp; để điều hướng dễ dàng hơn.

Sau đây từ ví dụ trước về âm mưu đồ thị trong Python, trong bài đăng này, chúng tôi sẽ: 1) thanh toán biểu đồ và 2) lưu nó vào một tệp Excel.

Kích hoạt đồ thị

Trước đây chúng tôi đã tạo ra biểu đồ này. Mặc dù không quá tồi tệ với những gì mã 2 dòng đã làm, nhưng biểu đồ cách xa biểu đồ cấp độ chuyên nghiệp. Vì vậy, hãy để cho nó làm cho nó đẹp hơn.

Hướng dẫn pandas save plot to excel - gấu trúc lưu cốt truyện vào excel
pandas-plot

Chúng tôi sẽ sử dụng matplotlib để sửa đổi định dạng cốt truyện. Tôi đã giành chiến thắng trong các mã dưới đây vì đó không phải là chủ đề của hướng dẫn này. Tôi sẽ bao gồm nó trong một bài viết khác.

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.githubusercontent.com/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 Covid Confirmed Cases',
       xlabel = 'Time',
       ylabel = 'Number of cases')


ax.yaxis.set_major_formatter(FuncFormatter(lambda x, 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()
Prettier cốt truyện từ gấu trúc
Hướng dẫn pandas save plot to excel - gấu trúc lưu cốt truyện vào excel
Prettier plot from pandas

Lưu một lô được tạo ra python vào tệp excel

Chúng tôi sẽ cần lưu cốt truyện vào máy tính của chúng tôi trước.

plt.savefig('python_pretty_plot.png')

Sau đó, chúng ta có thể sử dụng thư viện XLSXWRITER để tạo tệp Excel! Để lưu dữ liệu các trường hợp đã được xác nhận vào Excel:

writer = pd.ExcelWriter('python_plot.xlsx', engine = 'xlsxwriter')
global_num.to_excel(writer, sheet_name='Sheet1')

Sau đó, chúng ta có thể thêm hình ảnh vào cùng một trang:

worksheet = writer.sheets['Sheet1']
worksheet.insert_image('C2','python_pretty_plot.png')
writer.save()

Hướng dẫn pandas save plot to excel - gấu trúc lưu cốt truyện vào excel

Giới thiệu về việc tạo các tệp Excel với các biểu đồ sử dụng gấu trúc và xlsxwriter.

import pandas as pd

...

writer = pd.ExcelWriter('farm_data.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')

workbook = writer.book
worksheet = writer.sheets['Sheet1']

chart = workbook.add_chart({'type': 'column'})

...

Các biểu đồ trong tài liệu này bị ảnh hưởng nặng nề bởi đầu ra của Vincent một công cụ trực quan hóa dữ liệu cũng được tích hợp với gấu trúc.