Xkcd Python matplotlib

def make_XKCD_guy( tên tệp, x=. 5,y=. 85, bán kính=. 1, quote=Không, color='k', lw=5, xytext=(0, 20), arm="left" ). # Bị đánh cắp từ https. // alimanfoo. github. io/2016/05/31/matplotlib-xkcd. hình html, ax = plt. ô con(figsize=(10, 15)) ax. set_axis_off() # vẽ đầu head = plt. Hình tròn((x, y),radius=bán kính, edgecolor=color, lw=lw, facecolor='none', zorder=10) ax. add_patch(head) # vẽ phần thân = plt. Line2D([x, x], [bán kính y, y-(bán kính * 4)], màu=màu, lw=lw, biến đổi=ax. transAxes) rìu. add_line(body) # vẽ cánh tay nếu arm == 'left'. cánh tay1 = plt. Line2D([x, x+(4*bán kính)], [y-(bán kính * 1. 5), y-(bán kính)], màu=màu, lw=lw, biến đổi=ax. transAxes) rìu. add_line(arm1) arm2 = plt. Line2D([x, x-(bán kính *. 8)], [y-(bán kính * 1. 5), y-(bán kính*5)], màu=màu, lw=lw, biến đổi=ax. transAxes) rìu. add_line(arm2) nếu arm == "phải". cánh tay1 = plt. Line2D([x, x-(4*bán kính)], [y-(bán kính * 1. 5), y-(bán kính)], màu=màu, lw=lw, biến đổi=ax. transAxes) rìu. add_line(arm1) arm2 = plt. Line2D([x, x+(bán kính *. 8)], [y-(bán kính * 1. 5), y-(bán kính*5)], màu=màu, lw=lw, biến đổi=ax. transAxes) rìu. add_line(arm2) # vẽ chân leg1 = plt. Line2D([x, x+(bán kính)], [y-(bán kính * 4), y-(bán kính*8)], màu=màu, lw=lw, biến đổi=ax. transAxes) rìu. add_line(leg1) leg2 = plt. Line2D([x, x-(bán kính*. 5)], [y-(bán kính * 4), y-(bán kính*8)], màu=màu, lw=lw, biến đổi=ax. transAxes) rìu. add_line(leg2) hình. savefig(tên tệp, trong suốt=True, dpi=DPI) trả về hình

Matplotlib là thư viện vẽ đồ thị tuyệt vời dành cho python. Tuyệt vời như matplotlib, đôi khi nó có thể làm được điều đó với một chút cải tiến về phong cách [1] [2]. Gần đây tôi đã bắt gặp một tính năng thú vị trong matplotlib cho phép bạn vẽ đồ thị theo phong cách truyện tranh XKCD nổi tiếng, với phông chữ vui nhộn và kiểu đường nét 'sơ sài' hơn

Sử dụng các lô kiểu xkcd không chỉ để giải trí. Bạn có thể sử dụng kiểu xkcd khi muốn nhấn mạnh sự không chắc chắn trong mô hình hoặc phân tích của mình. Chúng trông không chính thức đến mức khán giả hoặc người đọc của bạn sẽ phải đặt câu hỏi liệu phân tích của bạn có đúng hay không

Các ô kiểu Matplotlib XKCD

Các ô kiểu Matplotlib XKCD rất dễ tạo – nó đơn giản như bao gồm 'plt. xkcd()' khi bắt đầu tập lệnh vẽ sơ đồ của bạn. Ví dụ

from matplotlib import pyplot as plt
import numpy as np
from scipy.stats import norm

plt.xkcd():
x_axis = np.arange(-10, 10, 0.001)
mu = 0
variance = 1
plt.plot(x_axis, norm.pdf(x_axis,mu,variance))
plt.xlabel('X VALUES')
plt.ylabel('Y VALUES')
plt.title('NORMAL DISTRIBUTION')
plt.show()

Cái nào nên xuất cái này

 

Xkcd Python matplotlib

Kiểm soát nhiều hơn đối với các lô XKCD

Bạn sẽ thấy rằng một khi bạn đã bao gồm plt. xkcd() trong tập lệnh của bạn, tất cả các lô của bạn trong phiên đó sẽ có kiểu xkcd. Để kiểm soát nhiều hơn một chút đối với kiểu xkcd, bạn có thể sử dụng 'with plt. xkcd()' thay vào đó. Ví dụ

from matplotlib import pyplot as plt
import numpy as np
from scipy.stats import norm

# An xkcd-style plot
with plt.xkcd():
    x_axis = np.arange(-10, 10, 0.001)
    mu = 0
    variance = 1
    plt.plot(x_axis, norm.pdf(x_axis,mu,variance))
    plt.xlabel('X VALUES')
    plt.ylabel('Y VALUES')
    plt.title('NORMAL DISTRIBUTION')
    plt.show()

# The same plot with matplotlib defaults
x_axis = np.arange(-10, 10, 0.001)
mu = 0
variance = 1
plt.plot(x_axis, norm.pdf(x_axis,mu,variance))
plt.xlabel('X VALUES')
plt.ylabel('Y VALUES')
plt.title('NORMAL DISTRIBUTION')
plt.show()

Mã này sẽ tạo ra hai ô có cùng dữ liệu, nhưng với các kiểu khác nhau. Cái thứ hai sẽ sử dụng mặc định matplotlib và trông giống như thế này

Xkcd Python matplotlib

 

Cải thiện văn bản

Để cải thiện giao diện (hoặc ít nhất là làm cho nó giống XKCD hơn), bạn có thể cài đặt phông chữ 'Humor Sans'. Sau khi bạn cài đặt phông chữ Humor Sans, bạn có thể thấy rằng matplotlib không thể tìm thấy nó ngay lập tức. Để giúp mọi thứ, bạn có thể đặt lại trình quản lý phông chữ matplotlib bằng

[Randall Munroe] chắc chắn hiểu sức mạnh của biểu diễn dữ liệu bằng đồ họa. Những tình tiết hài hước trong webcomic XKCD của anh là một trong những phần được nhiều độc giả yêu thích. Phong cách Tufteian đặc biệt của họ cung cấp thông tin – trong trường hợp này là một đường đột – mà không cần trang trí quá mức. Thành thật mà nói, chúng ta không thể có đủ chúng. Một chủ đề reddit gần đây đã nhắc nhở chúng tôi rằng bạn có thể tạo giao diện tương tự cho dữ liệu của riêng mình (hài hước hoặc cách khác) bằng Python bằng Matplotlib

Nếu bạn đã có một biểu đồ được tạo bằng Matplotlib, việc kích hoạt chế độ xkcd cũng đơn giản như gọi một phương thức trên đối tượng pyplot

matplotlib.pyplot.xkcd()

Tài liệu khuyên bạn nên cài đặt phông chữ “Humor Sans” để có hiệu quả tốt nhất. Trên một trong các hộp linux của chúng tôi, chúng tôi có thể thực hiện việc này một cách dễ dàng

sudo apt-get install fonts-humor-sans

Chắc chắn sẽ có những câu thần chú tương tự cho các hệ điều hành khác. Nó thực sự đơn giản. Trên thực tế, hình ảnh nổi bật ở trên được tạo bằng tập lệnh tối thiểu này

#!/usr/bin/env python3

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 1, 100)
y = (x > 0.5) * (x - 0.5)

plt.xkcd(scale=5, length=400)
plt.xticks([])
plt.yticks([])
plt.ylabel('Downloads of "humor sans" font')
plt.text(0, 0.25, 'Article on xkcd() published')
plt.plot(x, y)
plt.plot([0.3, 0.475], [0.2, 0.025], 'black')
plt.gca().set_aspect(2*9/16)
plt.savefig('xkcd_plot.png', dpi=300)

Ngoài việc tạo ra các biểu đồ hài hước cho những người có chút năng khiếu nghệ thuật, những biểu đồ này cũng có thể được sử dụng thay cho các bản phác thảo vẽ tay để biểu thị một mô hình đơn giản hoặc kết quả mong đợi. Giao diện hài hước của các ô truyền tải ý tưởng rằng chúng không đại diện cho dữ liệu thực tế, có lẽ chỉ là một khái niệm. Chúng tôi đã thấy điều này được thực hiện tại một trong những cuộc nói chuyện tại Hackaday SuperConference 2018

Chúng tôi cũng đã đề cập đến một số truyện tranh xkcd trước đây, chẳng hạn như khi họ mổ xẻ Arduino một cách tinh vi vào năm 2010, trước đó điều đó thật tuyệt

PLT CLF() trong Python là gì?

matplotlib. pyplot. hàm clf(). Hàm clf() trong mô-đun pyplot của thư viện matplotlib được dùng để xóa hình hiện tại .

Hình PLT () trong Python là gì?

Matplotlib là một thư viện trong Python và nó là phần mở rộng số – toán học cho thư viện NumPy. Mô-đun hình cung cấp Nghệ sĩ cấp cao nhất, Hình, chứa tất cả các thành phần cốt truyện . Mô-đun này được sử dụng để kiểm soát khoảng cách mặc định của các ô con và vùng chứa cấp cao nhất cho tất cả các thành phần cốt truyện.

Chức năng của YLIM() trong Matplotlib là gì?

Hàm ylim(). Hàm ylim() trong mô-đun pyplot của thư viện matplotlib được sử dụng để nhận hoặc đặt giới hạn y của các trục hiện tại .