Dpi trong biểu đồ Python là gì?

Lưu số liệu cho các ấn phẩm, bài thuyết trình, sách hoặc trang web có thể là một nhiệm vụ phức tạp nhưng không cần thiết. Trong Mẹo Python này, chúng ta sẽ xem cách tạo hình ảnh bằng Matplotlib đã sẵn sàng để nhúng. Chúng tôi sẽ quan tâm đến các khía cạnh quan trọng nhất. hình dạng, cỡ chữ và độ phân giải. Bạn sẽ không phải sửa lại các tham số ngẫu nhiên cho đến khi có kết quả đúng

Khi bạn hiểu các tùy chọn mà Matplotlib cung cấp và ý nghĩa của chúng, bạn sẽ nhận ra rằng việc tạo các số liệu sẵn sàng xuất bản có thể dễ dàng. Chúng tôi sẽ tập trung chủ yếu vào các sơ đồ cho bài báo, nhưng khi bạn nắm được ý chính, bạn có thể ngoại suy sang các định dạng khác như áp phích, sách hoặc trang web

Kích thước

Đầu tiên, chúng ta cần thảo luận về kích thước và độ phân giải, hai cường độ độc lập nhưng có liên quan với nhau. Kích thước là kích thước vật lý của một hình ảnh. Ví dụ, nếu chúng ta đang chuẩn bị một cốt truyện cho một bài báo, trước tiên chúng ta nên kiểm tra chiều rộng của cột. Khoa học sử dụng chiều rộng 9cm, hoặc 3. 54 inch. Chiều cao của hình ảnh sẽ phụ thuộc vào nội dung chúng tôi đang hiển thị. Để đơn giản, tôi sẽ giả sử một hình vuông, vì vậy chúng tôi có 3. 54x3. 54 inch

Với matplotlib, việc xác định kích thước của hình rất đơn giản

fig = plt.figure[figsize=[3.54,3.54]]
plt.plot[x, y]

Tuy nhiên, biết kích thước chỉ là một nửa vấn đề. Chúng ta có thể tạo một biểu đồ có cùng kích thước, nhưng với độ phân giải khác nhau, đó là thông số thứ hai chúng ta cần thảo luận

sở KHĐT

Độ phân giải của hình ảnh có thể được tính toán, đếm tổng số điểm ảnh chứa trong đó hoặc xác định số chấm trên mỗi inch. sở KHĐT. Chúng tôi có thể tính toán số chấm trên mỗi inch nếu chúng tôi biết tổng số pixel và kích thước vật lý mà chúng tôi mong đợi cho hình ảnh. Theo cách khác, nếu chúng ta biết kích thước cuối cùng của hình ảnh và dpi, chúng ta có thể tính toán số pixel chúng ta cần. Thuật ngữ này xuất phát từ quá trình máy in tạo ra các chấm mực. Nếu chúng ta đang xem hình ảnh trên màn hình thay vì in, các dấu chấm sẽ trở thành pixel

Nếu chúng tôi đang chuẩn bị giấy, dpi sẽ được cố định bởi máy in. Do đó, chúng ta phải khớp với giá trị đó khi chuẩn bị hình ảnh của mình, nếu không chúng sẽ trông rất tệ. Giá trị dpi điển hình để in là 600dpi. Chúng tôi có thể chỉ định điều này trực tiếp trên matplotlib

fig = plt.figure[figsize=[3.54,3.54], dpi=600]
plt.plot[x, y]

Nếu chúng ta tính toán, điều này có nghĩa là con số cuối cùng có 2124 pixel trên mỗi trục

Cỡ chữ

Tại một số điểm, bạn phải tự hỏi tại sao chúng tôi chỉ định cả kích thước hình và dpi. Nếu chúng tôi sử dụng kích thước hình ảnh lớn hơn, chúng tôi sẽ nhận được nhiều pixel hơn. Tuy nhiên, kích thước và độ dày của phông chữ có liên quan đến kích thước của hình, không liên quan đến số pixel. Vì vậy, nếu chúng ta làm như sau

fig = plt.figure[figsize=[3.54,3.54], dpi=300]
plt.plot[x, y, linewidth=2]
plt.xlabel['X label [s]', fontsize=20]
plt.ylabel['Y label [V]', fontsize=10]

Chúng tôi sẽ nhận được một con số, khi được đặt ở kích thước phù hợp là 3. 54inx3. 54in sẽ có trục với phông chữ 20pt và 10pt. Matplotlib cho phép chúng tôi đặt kích thước phông chữ thành giá trị chính xác mà chúng tôi muốn. Ví dụ: nếu văn bản chính của chúng tôi sử dụng cỡ chữ 12pt, chúng tôi có thể làm cho các nhãn lớn hơn một chút so với văn bản và các dấu kiểm nhỏ hơn một chút

import matplotlib 
matplotlib.rc['xtick', labelsize=10] 
matplotlib.rc['ytick', labelsize=10] 

fig = plt.figure[figsize=[3.54,3.54], dpi=300]
plt.plot[x, y, linewidth=2]
plt.xlabel['X label [s]', fontsize=15]
plt.ylabel['Y label [V]', fontsize=15]

Hãy nhớ rằng, đặt kích thước phông chữ ngụ ý biết kích thước cuối cùng của hình. Chúng ta có thể thử thay đổi tham số dpi. Chúng ta sẽ thấy rằng ngay cả khi hình thu nhỏ trên màn hình [vì ít pixel hơn], kích thước tương đối của phông chữ so với tổng diện tích hình ảnh luôn bằng nhau. Nếu bạn kéo dài các hình ảnh để chiếm cùng một không gian trên màn hình, các nhãn trục sẽ có cùng kích thước

Bạn có thể tải xuống [tài liệu này]https. //www. pythonforthelab. com/tài liệu/1/image_sizes. pdf] để xem dpi ảnh hưởng như thế nào đến chất lượng hình ảnh tổng thể. Có các số liệu ở 72dpi, 150dpi, 300dpi và 600dpi. Tôi cũng đã bao gồm một hình có chiều rộng hai cột nhưng giữ nguyên tất cả các tham số khác, bao gồm cả dữ liệu

Ví dụ: nếu bạn đang chuẩn bị số liệu cho áp phích, bạn có thể sẽ có kích thước hình lớn hơn, cỡ chữ lớn hơn nhưng vẫn giữ dpi là 600 để in

Tiết kiệm

Khi chúng tôi có những số liệu chúng tôi muốn, bước cuối cùng là lưu chúng. Chúng tôi phải quyết định định dạng chúng tôi muốn sử dụng để lưu chúng. Tôi có xu hướng mặc định là png vì đây là định dạng nén không mất dữ liệu. Nó có nghĩa là chất lượng tốt như những gì tôi đã xác định. Trong Matplotlib, nó trở thành

plt.savefig['figure.png', bbox_inches='tight']

Đối số bổ sung, bbox_inches là cần thiết để đảm bảo Matplotlib tìm ra toàn bộ canvas trước khi lưu. Nếu chúng tôi không thêm nó, các trục có thể sẽ bị cắt ra khỏi hình ảnh. Hình ảnh PNG có thể được nhúng trong tài liệu, trang web và bản trình bày. Hầu như tất cả các tạp chí giấy cũng chấp nhận chúng nếu bạn cung cấp cho chúng độ phân giải phù hợp

Các lựa chọn thay thế khác đang lưu dưới dạng định dạng vector. Bạn có thể chọn lưu dưới dạng SVG nếu bạn định chỉnh sửa thêm hình ảnh trong các chương trình như Inkscape hoặc Adobe Illustrator. Nếu bạn đang viết bằng TeX, thích vector hơn raster, bạn có thể lưu các số liệu dưới dạng pdf. ghi chú của tôi. tránh eps [tái bút đóng gói], trừ khi bạn có lý do chính đáng để làm điều đó. Chúng chỉ khó chia sẻ hơn và chúng không mang lại lợi ích thực sự

cho bài thuyết trình

Nếu chúng ta đang chuẩn bị số liệu cho một bài thuyết trình, chúng ta phải xem xét hai điều. Mọi người sẽ nhìn vào các trang trình bày từ xa và chúng tôi không muốn có các tệp PowerPoint hàng trăm MB. Nói chung, kích thước phông chữ trong bản trình bày lớn hơn trong bài báo hoặc mọi người sẽ không thể nhìn thấy các trục. Khía cạnh khác là các số liệu phải có số lượng pixel hợp lý. Độ phân giải cao hơn sẽ tạo ra những con số nặng nề mà không đạt được bất kỳ lợi ích nào

PowerPoint chỉ định một số kích thước trang chiếu mặc định. Để trình chiếu trên màn hình rộng, chúng là 13. 33inx7. 5in. Giả sử chúng ta sẽ sử dụng máy chiếu Full-HD, có chiều rộng 1920px và chiều cao 1080px. Nó cho dpi là 144. Tuy nhiên, PowerPoint hoạt động với độ phân giải mặc định là 96dpi

Ghi chú. các chương trình khác có thể sử dụng độ phân giải mặc định khác hoặc các phiên bản PowerPoint mới hơn có thể mặc định ở độ phân giải cao hơn. Trong mọi trường hợp, điều duy nhất bạn phải làm là thay đổi thông số dpi của hình

Với thông tin chúng tôi có, chúng tôi có thể tạo ra các số liệu

import matplotlib 
matplotlib.rc['xtick', labelsize=16] 
matplotlib.rc['ytick', labelsize=16] 

fig = plt.figure[figsize=[13.33,7.5], dpi=96]
plt.plot[x, y, linewidth=2]
plt.xlabel['X label [s]', fontsize=18]
plt.ylabel['Y label [V]', fontsize=18]

Chúng tôi đã chọn cỡ chữ là 16 và 18. Đây là những giá trị hợp lý, nhưng bạn có thể muốn làm cho chúng lớn hơn nếu bạn đang trình bày trước những khán phòng lớn. Tuy nhiên, trong hầu hết các bản trình bày, chúng tôi sẽ không hiển thị số liệu ở chế độ toàn màn hình. Nếu chúng ta sử dụng hai hình ảnh cạnh nhau, chúng ta có thể có một cái gì đó như thế này

fig = plt.figure[figsize=[5,3], dpi=96]

Nếu chúng tôi không chia tỷ lệ hình ảnh sau khi nhúng nó vào PowerPoint, chúng tôi sẽ có các số liệu nhất quán. Có lẽ chúng ở chế độ toàn màn hình, có thể chúng được hiển thị cạnh nhau, nhưng tất cả các trục và độ dày của đường sẽ hoàn toàn giống nhau

Số liệu cho Web

Nếu bạn đang chuẩn bị số liệu cho trang web, thì cuộc thảo luận sẽ trở nên phức tạp hơn nhiều. Màn hình thay đổi hình dạng và độ phân giải. Ai đó ngồi sau iPad có màn hình retina sẽ có nhiều pixel như ai đó ngồi sau màn hình máy tính để bàn. Tuy nhiên, kích thước vật lý của hình là khác nhau đáng kể. Không có lời khuyên nào về cách chuẩn bị hình ảnh cho web hoạt động trong mọi tình huống có thể xảy ra. Hầu hết các trang web tạo các hình ảnh riêng biệt cho các tình huống khác nhau, ở các độ phân giải khác nhau và với nội dung khác nhau

Tuy nhiên, điều tốt nhất bạn có thể làm khi chuẩn bị hình ảnh cho web là lưu chúng dưới dạng SVG, đây là định dạng vector. Những hình ảnh này có thể được thu nhỏ mà không làm giảm độ phân giải. Trong Matplotlib, nó là tầm thường

plt.savefig['my_figure.svg', bbox_inches='tight']

Bạn có thể tiếp tục và thử thay đổi dpi của hình ảnh trước khi lưu và cố gắng để ý xem có bất kỳ sự khác biệt nào không

kết luận

Nếu bạn đang chuẩn bị số liệu cho một ấn phẩm, điều tốt nhất bạn có thể làm là tìm ra kích thước mà số liệu nên có. Hầu hết các tạp chí cung cấp cho bạn kích thước của các cột. Nếu bạn không thể tìm thấy chúng, bạn luôn có thể mặc định kích thước của Khoa học. Khi bạn biết kích thước của các số liệu của mình, hãy sửa dpi. Nếu là cho một bài báo, luận án hoặc áp phích, 600dpi là đủ tốt. Sau đó, đặt kích thước phông chữ của nhãn và trục khớp với kích thước phông chữ của văn bản xung quanh chúng. Bạn có thể làm cho nhãn và dấu tích lớn hơn hoặc nhỏ hơn một chút so với văn bản, tùy thuộc vào sở thích về phong cách của bạn

Trong tệp PDF này, tôi đã bao gồm các số liệu được tạo ở các dpi khác nhau nhưng được chia tỷ lệ theo kích thước được Khoa học khuyến nghị

Dpi tốt cho matplotlib là gì?

Thay đổi cài đặt dpi mặc định trong matplotlib. Tôi thích 300 [tôi. e. , 300 dpi], nhưng bạn có thể điều chỉnh theo ý thích của mình; . Lưu ý con số đó. dpi sẽ tăng pixel cho kết xuất nội tuyến trong khi savefig. I think the default dpi is 78. Note that figure. dpi will increase the pixel for inlined renderings while savefig.

Dpi mặc định trong matplotlib là gì?

độ phân giải của hình. Nếu không được cung cấp, giá trị mặc định là rcParams["figure. dpi"] [mặc định. 100. 0 ] = 100.

Làm cách nào để chỉ định kích thước dpi và hình khi đối tượng hình được tạo?

Vì vậy, để có được một hình có kích thước pixel là e. g. [1200,600] bạn có thể chọn một số kết hợp kích thước hình và dpi, e. g. figsize=[15,7. 5], dpi= 80 figsize=[12,6] , dpi=100 figsize=[ 8,4] , dpi=150 figsize=[ 6 .

Tại sao các ô Python của tôi bị mờ?

Trong matplotlib, độ phân giải của ô thấp , khiến cho ô bị mờ hoặc nổi hạt. Đó là lý do tại sao nó cung cấp chức năng điều chỉnh độ phân giải hình ảnh. Có hai cách để tăng độ phân giải của hình ảnh. Đầu tiên, chúng ta có thể đặt DPI của hình hoặc chúng ta có thể thay đổi định dạng hình ảnh thành vector.

Chủ Đề