本文目錄一覽:
- 1、python可以畫出excel的圖嗎
- 2、Python操作Excel實現自動化報表
- 3、如何使用python製作excel透視曲線圖
- 4、python 怎樣操作 excel 生成圖表, 求高手指點。 最好是源代碼 。
python可以畫出excel的圖嗎
本文主要闡述如何使用python從excel讀取數據,並用matplotlib繪製成二維圖像。
主要知識點為:
使用xlrd擴展包讀取excel數據
使用matplotlib繪製二維圖像
美化圖像,添加標註,注釋,顯示Latex風格公式,坐標點處透明化處理等技巧
適合人群:適合具有Python基礎的用戶,對於需要書寫實驗報告,學位論文,發表文章,做PPT報告的學員具有較大價值。
開發準備
打開Xfce終端,下載並安裝的相關依賴 。
$ sudo apt-get update
$ sudo apt-get install python-dev
$ sudo pip install numpy
$ sudo apt-get install python-matplotlib
$ sudo pip install xlrd
$ sudo apt-get install python-sip
$ sudo apt-get install libqt4-dev
$ sudo apt-get install python-qt4 python-qt4-dev pyqt4-dev-tools qt4-dev-tools
遇到是否安裝的詢問時,輸入y,按回車鍵繼續安裝。
實驗步驟
1.繪製一個簡單圖像,測試擴展包安裝是否正常。
安裝完成matplotlib後,運行一個小程序測試其是否正常。我們來繪製一個非常簡單的正弦函數。
在學習過程中有什麼不懂得可以加我的
python學習資源qun,855-408-893
群里有不錯的學習視頻教程、開發工具與電子書籍。
與你分享python企業當下人才需求及怎麼從零基礎學習好python,和學習什麼內容
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 500)
dashes = [10, 5, 100, 5] # 10 points on, 5 off, 100 on, 5 off
fig, ax = plt.subplots()
line1, = ax.plot(x, np.sin(x), ‘–‘, linewidth=2,
label=‘Dashes set retroactively‘)
line1.set_dashes(dashes)
line2, = ax.plot(x, -1 * np.sin(x), dashes=[30, 5, 10, 5],
label=‘Dashes set proactively‘)
ax.legend(loc=‘lower right‘)
plt.show()
如果一切正常,應該得到如下顯示的圖片:
2 測試xlrd擴展包
從excel中讀取數據的過程比較簡單,首先從xlrd包導入open_workbook,然後打開excel文件,把每個sheet里的每一行每一列數據都讀取出來即可。很明顯,這是個循環過程。
from xlrd import open_workbook
x_data1=[]
y_data1=[]
wb = open_workbook(‘phase_detector.xlsx‘)
for s in wb.sheets():
print ‘Sheet:‘,s.name
for row in range(s.nrows):
print ‘the row is:‘,row
values = []
for col in range(s.ncols):
values.append(s.cell(row,col).value)
print values
x_data1.append(values[0])
y_data1.append(values[1])
如果安裝包沒有問題,這段代碼應該能打印出excel表中的數據內容。解釋一下 這段代碼:打開一個excel文件後,首先對文件內的sheet進行循環,這是最外層循環;在每個sheet內,進行第二次循環,行循環;在每行內,進行列循環,這是第三層循環。在最內層列循環內,取出行列值,複製到新建的values列表內,很明顯,源數據有幾列,values列表就有幾個元素。我們例子中的excel文件有兩列,分別對應“角度”和DC值。所以在列循環結束後,我們將取得的數據保存到x_data1和y_data1這兩個列表中。
Python操作Excel實現自動化報表
Python操作Excel實現自動化報表
安裝
python -m pip install xlrd xlwt xlutils。
基本用法
1.從指定文件路徑讀取excel表格,進行一定操作,然後保存到另一個excel文件:result.xlsx
import xlwt
import xlrd
from xlutils.copy import copy
import pandas as pd
from pandas import DataFrame,Series
import os
os.chdir(‘./’)
# 從指定文件路徑讀取excel表格
df = pd.read_excel(‘D:/mypaper/data/data.xlsx’)
# 查看df內容
# 根據age算出出生年份,增加一列
import datetime
import os
year = datetime.datetime.now().year#獲取當前系統時間對應的年份
df[‘birth’] = year-df[‘age’]
df.to_excel(‘result.xlsx’)#保存到當前工作目錄,可以用os.getcwd()查看
#查看下此時df的內容,可以看到已經生成了birth這一列。
2.單元格操作
# 定義方法:讀取指定目錄下Excel文件某個sheet單元格的值
def excel_read(file_path,table,x,y):
data = xlrd.open_workbook(file_path)
table = data.sheet_by_name(table)
return table.cell(y,x).value
# 定義方法:單元格值及樣式
write_obj_list = []
def concat_obj(cols,rows,value):
write_obj_list.append({‘cols’:cols,’rows’:rows,’value’:value,\
‘style’:xlwt.easyxf(‘font: name 宋體,height 280;alignment: horiz centre’)})
# 定義方法:合併單元格
def merge_unit(srows,erows,scols,ecols,value):
write_obj_list.append({‘id’:’merge’,’srows’:srows,’erows’:erows,’scols’:scols,\
‘ecols’:ecols,’value’:value,’style’:xlwt.easyxf(‘font: name 宋體,height 280;alignment: horiz centre’)})
# 定義方法:更新excel
excel_update(file_path,write_obj_list,new_path):
old_excel = xlrd.open_workbook(file_path, formatting_info=True)
#管道作用
new_excel = copy(old_excel)
”’
通過get_sheet()獲取的sheet有write()方法
”’
sheet1 = new_excel.get_sheet(0)
”’
1代表是修改第幾個工作表裡,從0開始算是第一個。此處修改第一個工作表
”’
for item in write_obj_list:
if ‘id’ not in item.keys():
if ‘style’ in item.keys():
sheet1.write(item[‘rows’], item[‘cols’], item[‘value’],item[‘style’])
else:
sheet1.write(item[‘rows’], item[‘cols’], item[‘value’])
else:
if ‘style’ in item.keys():
sheet1.write_merge(item[‘srows’],item[‘erows’],item[‘scols’], item[‘ecols’], item[‘value’],item[‘style’])
else:
sheet1.write_merge(item[‘srows’],item[‘erows’],item[‘scols’], item[‘ecols’], item[‘value’])
”’
如果報錯 dict_items has no attributes sort
把syle源碼中–alist.sort() 修改為—- sorted(alist)
一共修改2次
”’
new_excel.save(file_path)
#參數詳解
# srows:合併的起始行數
# erows:合併的結束行數
# scols:合併的起始列數
# ecols:合併的結束列數
# value:合併單元格後的填充值
# style:合併後填充風格:
# font: name 宋體
# height 280;
# alignment: horiz centre
# … 與excel操作基本保持一致
(注意:該方法僅僅是將需要直行的動作保存到一個list中,真正的動作還未執行,執行動作是發生在excel_update方法中)
最終調用excel_update方法,傳入每個單元格需要進行的操作和填充值的write_obj_list以及文件保存路徑file_path,就可以在當前工作目錄下生成想要的Excel結果文件。
注意:
1.write_obj_list支持用戶自定義
2.write_obj_list也可以是根據excel_read方法讀取現有待修改的excel文件(可以維持原有表格的格式)而生成
End
如何使用python製作excel透視曲線圖
Excel功能之強大,每個人都會用到。你還在為怎麼做數據表煩惱么。Excel高版本自帶的數據圖表可以滿足一般需求,這就是高版本的好處自帶很多實用功能減輕繁重的工作。本文就2010版本的數據視圖做個簡單的功能介紹,製作一個孩子的各科目每年學習成績曲線圖
開啟分步閱讀模式
工具材料:
excel2010
操作方法
01
數據源,先做好每年孩子各科目學習成績的記錄
02
數據透視圖,首先要選擇數據,然後點擊‘插入’-》數據透視表-》數據透視圖
03
選擇必要選項,在彈出的對話框中,有兩個選項供選擇,一個是數據源(可以選擇外部數據源,默認是當前選中的數據),一個是視圖要顯示的位置,可以在當前的表中呈現,也可以在另外一個sheet中展現。一般情況下我是在當前工作表中呈現,直觀,方便。
04
報錯,如果選擇了‘現有工作表’,但是‘位置’里為空,這樣直接確定是會報錯的,因為你還么有選擇圖標要顯示的位置。
05
選擇需要展示的數據,剛才選擇的數據源列都在上面提現出來了,現在是要選擇數據視圖展示的內容。我們來選擇科目、時間、成績。
06
橫軸、縱軸調整,圖1位置是我們所謂的X軸,圖2是我們要顯示的幾個內容,圖3是顯示的Y軸數值。
07
選擇圖標樣式,步驟6完成之後,默認是柱狀圖,但是這個不直觀,我想要的是曲線走勢圖,所以可以改變下顯示的樣式,
08
完美走勢圖,看曲線就可以知道小朋友數學、音樂成績在不斷提高,英語成績波動不大,語文成績在下滑。
python 怎樣操作 excel 生成圖表, 求高手指點。 最好是源代碼 。
搜索下載pyExcelerator,這是一個python控制excel的庫。主要是通過EXCEL文件結構直接讀寫實現。可以操作單元格,公式,設置格式。功能強大。我下載的版本是0.6.4.1
你也可以用excel的COM接口實現。那個功能就更強了。不過COM接口找不到文檔。需要自己嘗試。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/304938.html