Hướng dẫn how do i save a plot as a jpeg in python? - làm cách nào để lưu một âm mưu dưới dạng jpeg trong python?

40

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi đang sử dụng matplotlib (trong pylab) để hiển thị số liệu. Và tôi muốn lưu chúng ở định dạng .jpg. Khi tôi chỉ cần sử dụng lệnh SaveFig với tiện ích mở rộng JPG này, hãy trả về:

ValueError: Format "jpg" is not supported.

Supported formats: emf, eps, pdf, png, ps, raw, rgba, svg, svgz.

Có cách nào để thực hiện điều này không?

Hỏi ngày 11 tháng 1 năm 2012 lúc 21:36Jan 11, 2012 at 21:36

Hướng dẫn how do i save a plot as a jpeg in python? - làm cách nào để lưu một âm mưu dưới dạng jpeg trong python?

3

Bạn có thể lưu một hình ảnh dưới dạng 'PNG' và sử dụng Thư viện hình ảnh Python (PIL) để chuyển đổi tệp này thành 'jpg':

import Image
import matplotlib.pyplot as plt

plt.plot(range(10))
plt.savefig('testplot.png')
Image.open('testplot.png').save('testplot.jpg','JPEG')

Bản gốc:

Hướng dẫn how do i save a plot as a jpeg in python? - làm cách nào để lưu một âm mưu dưới dạng jpeg trong python?

Hình ảnh JPEG:

Hướng dẫn how do i save a plot as a jpeg in python? - làm cách nào để lưu một âm mưu dưới dạng jpeg trong python?

Hướng dẫn how do i save a plot as a jpeg in python? - làm cách nào để lưu một âm mưu dưới dạng jpeg trong python?

Bhargav Rao

47.6K27 Huy hiệu vàng122 Huy hiệu bạc137 Huy hiệu đồng27 gold badges122 silver badges137 bronze badges

Đã trả lời ngày 11 tháng 1 năm 2012 lúc 22:03Jan 11, 2012 at 22:03

YannyannYann

Huy hiệu vàng 32K876 Huy hiệu bạc69 Huy hiệu đồng8 gold badges76 silver badges69 bronze badges

1

Để làm rõ và cập nhật câu trả lời hữu ích và câu hỏi ban đầu. Một giải pháp sạch bao gồm cài đặt gối, đây là phiên bản cập nhật của Thư viện hình ảnh Python (PIL). Điều này được thực hiện bằng cách sử dụng

pip install pillow

Sau khi cài đặt gối, các lệnh matplotlib tiêu chuẩn

import matplotlib.pyplot as plt

plt.plot([1, 2])
plt.savefig('image.jpg')

sẽ lưu hình vào tệp JPEG và sẽ không tạo ra giá trịerror nữa.not generate a ValueError any more.

Trái ngược với câu trả lời của @AmillerRhodes, kể từ Matplotlib 3.1, các tệp JPEG vẫn chưa được hỗ trợ. Nếu tôi loại bỏ gói gối, tôi vẫn nhận được giá trị horror về một loại tệp không được hỗ trợ.

Đã trả lời ngày 27 tháng 3 năm 2015 lúc 13:48Mar 27, 2015 at 13:48

Hướng dẫn how do i save a plot as a jpeg in python? - làm cách nào để lưu một âm mưu dưới dạng jpeg trong python?

Divenexdivenexdivenex

13.3k9 Huy hiệu vàng52 Huy hiệu bạc53 Huy hiệu Đồng9 gold badges52 silver badges53 bronze badges

3

Chỉ cần cài đặt gối với pip install pillow và nó sẽ hoạt động.

Đã trả lời ngày 21 tháng 7 năm 2014 lúc 21:00Jul 21, 2014 at 21:00

Letmaikletmaikletmaik

3.1031 Huy hiệu vàng32 Huy hiệu bạc40 Huy hiệu đồng1 gold badge32 silver badges40 bronze badges

Tôi vừa cập nhật matplotlib lên 1.1.0 trên hệ thống của mình và bây giờ nó cho phép tôi lưu tới jpg với

import Image
import matplotlib.pyplot as plt

plt.plot(range(10))
plt.savefig('testplot.png')
Image.open('testplot.png').save('testplot.jpg','JPEG')
0.

Để nâng cấp lên Matplotlib 1.1.0 với

import Image
import matplotlib.pyplot as plt

plt.plot(range(10))
plt.savefig('testplot.png')
Image.open('testplot.png').save('testplot.jpg','JPEG')
1, hãy sử dụng lệnh này:

pip install -U 'http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.0/matplotlib-1.1.0.tar.gz/download'

Chỉnh sửa (để trả lời bình luận):

import Image
import matplotlib.pyplot as plt

plt.plot(range(10))
plt.savefig('testplot.png')
Image.open('testplot.png').save('testplot.jpg','JPEG')
2 chỉ đơn giản là một tập hợp của matplotlib.pyplot và không gian tên numpy (cũng như một vài cái khác) jinto một không gian tên duy nhất.

Trên hệ thống của tôi,

import Image
import matplotlib.pyplot as plt

plt.plot(range(10))
plt.savefig('testplot.png')
Image.open('testplot.png').save('testplot.jpg','JPEG')
2 chỉ là thế này:

from matplotlib.pylab import *
import matplotlib.pylab
__doc__ = matplotlib.pylab.__doc__

Bạn có thể thấy rằng

import Image
import matplotlib.pyplot as plt

plt.plot(range(10))
plt.savefig('testplot.png')
Image.open('testplot.png').save('testplot.jpg','JPEG')
2 chỉ là một không gian tên khác trong cài đặt matplotlib của bạn. Do đó, không quan trọng bạn có nhập nó với
import Image
import matplotlib.pyplot as plt

plt.plot(range(10))
plt.savefig('testplot.png')
Image.open('testplot.png').save('testplot.jpg','JPEG')
2 hay với
import Image
import matplotlib.pyplot as plt

plt.plot(range(10))
plt.savefig('testplot.png')
Image.open('testplot.png').save('testplot.jpg','JPEG')
6 hay không.

Nếu bạn vẫn đang gặp vấn đề, thì tôi đoán phần phụ trợ MacOSX không hỗ trợ các lô tiết kiệm cho JPG. Bạn có thể thử sử dụng một phụ trợ khác. Xem ở đây để biết thêm thông tin.

Đã trả lời ngày 11 tháng 1 năm 2012 lúc 22:40Jan 11, 2012 at 22:40

1

Matplotlib có thể xử lý trực tiếp và trong suốt JPG nếu bạn đã cài đặt PIL. Bạn không cần phải gọi nó, nó sẽ tự làm điều đó. Nếu Python không thể tìm thấy PIL, nó sẽ gây ra lỗi.

Đã trả lời ngày 26 tháng 3 năm 2012 lúc 19:26Mar 26, 2012 at 19:26

Chỉ để hoàn thiện, nếu bạn cũng muốn kiểm soát chất lượng (nghĩa là mức nén) của kết quả đã lưu, nó dường như trở nên phức tạp hơn một chút, vì trực tiếp vượt qua

import Image
import matplotlib.pyplot as plt

plt.plot(range(10))
plt.savefig('testplot.png')
Image.open('testplot.png').save('testplot.jpg','JPEG')
7 dường như không ảnh hưởng đến kích thước và chất lượng đầu ra. Vì vậy, một mặt, người ta có thể đi theo cách lưu kết quả dưới dạng PNG trước, sau đó tải lại với
import Image
import matplotlib.pyplot as plt

plt.plot(range(10))
plt.savefig('testplot.png')
Image.open('testplot.png').save('testplot.jpg','JPEG')
8, sau đó lưu lại dưới dạng JPEG, sử dụng tham số
pip install pillow
0 của ____ 18 - tương tự như những gì được đề xuất trong câu trả lời của Yann.

Mặt khác, người ta có thể tránh được độ lệch của tải và tiết kiệm, bằng cách sử dụng

pip install pillow
1 (theo câu trả lời cho câu hỏi này):

from io import BytesIO
import matplotlib.pyplot as plt
from PIL import Image

buf = BytesIO()

plt.plot(...)  # Plot something here
plt.savefig(buf)
Image.open(buf).convert("RGB").save("testplot.jpg", quality=5)

Đã trả lời ngày 11 tháng 4 lúc 12:05Apr 11 at 12:05

Simonsimonsimon

3502 huy hiệu bạc9 Huy hiệu đồng2 silver badges9 bronze badges

Tôi không chắc chắn về tất cả các phiên bản của matplotlib, nhưng trong tài liệu chính thức cho v3.5.0 savfig cho phép bạn chuyển cài đặt qua thư viện gối bên dưới, dù sao thì việc lưu hình ảnh. Vì vậy, nếu bạn muốn một jpg với các cài đặt nén cụ thể, ví dụ:

import matplotlib.pyplot as plt
plt.plot(...)  # Plot stuff
plt.savefig('filename.jpg', pil_kwargs={
    'quality': 20,
    'subsampling': 10
})

Điều này sẽ cung cấp cho bạn một JPG nén cao làm đầu ra.

Đã trả lời ngày 22 tháng 4 lúc 15:05Apr 22 at 15:05

DREDREDre

1.84515 huy hiệu bạc12 Huy hiệu đồng15 silver badges12 bronze badges

Làm thế nào để bạn lưu một biểu đồ dưới dạng hình ảnh trong Python?

Lưu một lô trên đĩa của bạn dưới dạng tệp hình ảnh ngay bây giờ nếu bạn muốn lưu các số liệu matplotlib dưới dạng tệp hình ảnh theo chương trình, thì tất cả những gì bạn cần là matplotlib. pyplot. hàm saveFig (). Chỉ cần chuyển tên tệp mong muốn (và thậm chí vị trí) và hình sẽ được lưu trữ trên đĩa của bạn.matplotlib. pyplot. savefig() function. Simply pass the desired filename (and even location) and the figure will be stored on your disk.

Làm cách nào để lưu đồ thị Python dưới dạng PNG?

Phần mã sau đây xây dựng một biểu đồ dòng và lưu biểu đồ vào biểu đồ tệp hình ảnh ...
x = [0, 2, 4, 6] y = [1, 3, 4, 8].
plt.xlabel ('x giá trị') plt.ylabel ('giá trị y') plt.Tiêu đề ('vạch ra giá trị x và y') plt.Truyền thuyết (['dòng 1']).
# Lưu hình plt.SaveFig ('Plot.png', dpi = 300, bbox_inches = 'chặt chẽ').

Làm cách nào để xuất biểu đồ matplotlib?

Nếu bạn muốn xuất một biểu đồ với matplotlib, bạn sẽ luôn gọi .savefig (đường dẫn).Matplotlib sẽ tìm ra loại tệp dựa trên đường dẫn tệp được truyền.Điều này sẽ lưu cốt truyện trong line_plot.call . savefig(path) . matplotlib will figure out the file type based on the passed file path . This will save the plot in line_plot.

Làm cách nào để lưu một âm mưu dưới dạng PDF trong Python?

Để lưu tệp ở định dạng PDF, hãy sử dụng phương thức saveFig () trong đó tên hình ảnh là myImagePdf.pdf, format = Hồi pdf.Để hiển thị hình ảnh, sử dụng PLT.Hiển thị () phương thức.use savefig() method where the image name is myImagePDF. pdf, format = ”pdf”. To show the image, use the plt. show() method.