1. 保存圖表的方法
今天我們不僅會學習如何繪製漂亮的圖表,還會將它們轉化為極佳的圖像,您可以將這些圖像插入您的報告、簡報或專屬相冊中,像是這樣:「看看,我完成了!」。誰知道呢,也許你的圖表會在社群媒體上爆紅,讓你享受屬於你的 15 分鐘名氣!
就像在任何好的烹飪節目中一樣,我們會開始選擇一個「食譜」,我們將先快速瀏覽幾種可以保存圖表的文件格式。每種格式都有其特點,了解這些特點有助於您為您的「菜單」選擇合適的「料理」。其中一些格式如下:
- PNG (Portable Network Graphics): 最受歡迎的網頁圖像格式之一。擁有良好的壓縮無損品質、透明背景支持以及被大多數應用支持的特點。
- PDF (Portable Document Format): 適合作為文件嵌入的一部分。這是一種向量格式,也意味著即使進行縮放,圖像依然保持清晰。
- SVG (Scalable Vector Graphics): 又是一種向量格式,非常適合網頁使用,支持互動和動畫。
- JPEG (Joint Photographic Experts Group): 通常用於照片,因為有失真壓縮機制,可能不適合帶有文字的圖表。
現在,我們了解了有哪些選項,讓我們使用 Matplotlib 的 savefig()
函數開始保存圖表吧。
使用 savefig() 保存圖表
Matplotlib 讓保存圖表的過程簡單得像給你的手機更新 OS 一樣(如果一切順利的話)。讓我們來看看如何操作。
import matplotlib.pyplot as plt
# 假設我們有一個簡單的圖表
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
plt.plot(x, y, label='質數')
plt.xlabel('x')
plt.ylabel('y')
plt.title('質數的線性圖表')
plt.legend()
# 保存圖表到檔案
plt.savefig('primes.png')
此代碼會在當前目錄中創建一個文件 primes.png
。就這樣!完全不需要記住神秘的咒語或向數字神明獻祭。只要用 plt.savefig('路徑/文件名稱')
代替 plt.show()
就可以啦!
2. 保存參數的設置
當然,僅僅保存圖表是不夠的 — 我們希望它看起來棒極了!就像那句老話說的:「如果圖表質量不好,那麼沒人會注意到。」或者類似的話啦。
設置圖像的質量和解析度
要創建高質量的圖像,可以設置參數 dpi
(每英寸的點數,dots per inch),它定義了圖像中的像素密度。數值越高,圖像越細緻。對於網頁,通常 72 dpi 已經夠用,而打印則需要 300 dpi 或更多。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 25, 30]
plt.plot(x, y)
# 保存高解析度圖表
plt.savefig("high_quality_plot.png", dpi=300)
plt.show()
在這裡,dpi=300
增加了圖像的質量,使其更清晰,這在報告和打印中特別有用。
保存時去掉邊框和額外空間
Matplotlib 預設會在圖表周圍添加空白區域,這在插入報告時可能不太方便。要保存沒有邊框的圖像,可以使用參數 bbox_inches="tight"
。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [5, 10, 15, 20, 25]
plt.plot(x, y)
# 保存無邊框的圖表
plt.savefig("plot_no_borders.png", bbox_inches="tight")
plt.show()
使用參數 bbox_inches="tight"
可以去掉圖表周圍多餘的空白,讓圖像更加緊湊。
保存前設置圖表尺寸
有時我們需要保存特定尺寸的圖表(例如用於簡報或網頁發佈)。可以使用 figure(figsize=(寬度, 高度))
來設置圖表的尺寸(以英寸為單位)。
import matplotlib.pyplot as plt
# 設置圖表尺寸
plt.figure(figsize=(10, 5)) # 寬10英寸,高5英寸
x = [1, 2, 3, 4, 5]
y = [5, 10, 15, 20, 25]
plt.plot(x, y)
plt.title("指定尺寸的圖表")
# 保存指定尺寸的圖表
plt.savefig("custom_size_plot.png")
plt.show()
在這個例子中,圖表會以 10x5 英寸的尺寸保存。可以根據報告或簡報的具體需求調整尺寸。
savefig()
的其他參數
transparent=True
:以透明背景保存圖像,這對於插入有顏色或透明背景的地方非常有用。pad_inches
:設置圖表周圍的額外間隔,與bbox_inches
一起使用。format
:指定保存文件的格式,例如 pdf, png, jpg...
如果未指定參數 format
,則 savefig()
方法會根據文件名推斷格式。
# 使用參數保存圖表
plt.savefig('primes_high_res', dpi=300, pad_inches='tight', format='png', transparent=True)
現在你的圖表會變得如此清晰,以至於任何看到它的人都會說:「哇,你絕對知道你在幹嘛!」
3. 保存的示例
通常我們會有很多例子來用於測試和調試。這樣可以讓我們瞭解不同參數如何影響最終結果。
保存為 PDF 格式
如果需要將圖表嵌入報告或簡報中,PDF 格式非常合適。它的向量特性允許無損縮放。
plt.savefig('primes.pdf', bbox_inches='tight')
保存為向量格式 SVG
SVG 格式非常適合用於網頁或帶有動畫的插件,因為其特性允許添加互動性。
plt.savefig('primes.svg', bbox_inches='tight')
保存為 JPEG 格式
如果您的圖表主要由圖片組成而非清晰的線條和文字,JPEG 格式可能會很有用。
plt.savefig('primes.jpg', quality=95)
實用小貼士
- 文件名: 為文件選擇清晰且描述性的名字,便於查找和重用。
- 檢查質量: 保存前在屏幕上查看圖表,確保其質量符合要求。
- 使用透明背景: 在為簡報或網頁創建圖表時很有用,因為圖表可以放置在有色背景上。
常見問題
在保存圖表時,可能會出現一些問題,就像更新打印機驅動時遇到的麻煩一樣。最常見的問題之一是 savefig()
在像 Jupyter Notebook 這樣的環境中無法正常工作。這是因為在交互式環境中,圖表只能顯示而無法保存。在這種情況下,可以使用 plt.close()
方法在保存後關閉圖表。
GO TO FULL VERSION