Làm thế nào để bạn đặt tên cho một huyền thoại trong python?

Trong hướng dẫn này, chúng ta sẽ đề cập đến chú giải, tiêu đề và nhãn trong Matplotlib. Rất nhiều lần, đồ thị có thể tự giải thích, nhưng có thể cần phải có tiêu đề cho đồ thị, nhãn trên trục và chú giải giải thích ý nghĩa của từng dòng

Để bắt đầu

import matplotlib.pyplot as plt

x = [1,2,3]
y = [5,7,4]

x2 = [1,2,3]
y2 = [10,14,12]

Bằng cách này, chúng ta có hai dòng mà chúng ta có thể vẽ. Tiếp theo

plt.plot[x, y, label='First Line']
plt.plot[x2, y2, label='Second Line']

Ở đây, chúng ta vẽ đồ thị như chúng ta đã thấy, chỉ lần này chúng ta thêm một tham số khác "nhãn. " Điều này cho phép chúng tôi gán tên cho dòng mà sau này chúng tôi có thể hiển thị trong chú giải. Phần còn lại của mã của chúng tôi

plt.xlabel['Plot Number']
plt.ylabel['Important var']
plt.title['Interesting Graph\nCheck it out']
plt.legend[]
plt.show[]

Với plt. xlabel và plt. ylabel, chúng ta có thể gán nhãn cho các trục tương ứng đó. Tiếp theo, chúng ta có thể gán tiêu đề của cốt truyện bằng plt. tiêu đề, sau đó chúng ta có thể gọi chú thích mặc định bằng plt. truyền thuyết[]. đồ thị kết quả

Bộ dữ liệu Penguins được sử dụng ở đây đã được thu thập và cung cấp bởi Tiến sĩ. Kristen Gorman tại Trạm Palmer, Nam Cực LTER. Bộ dữ liệu này đã được Allison Horst phổ biến trong gói R

FLIPPER_LENGTH = data["flipper_length_mm"].values
BILL_LENGTH = data["bill_length_mm"].values

SPECIES = data["species"].values
SPECIES_ = np.unique[SPECIES]

COLORS = ["#1B9E77", "#D95F02", "#7570B3"]
0 của cô ấy với mục tiêu cung cấp một giải pháp thay thế cho bộ dữ liệu mống mắt để khám phá và trực quan hóa dữ liệu

data = palmerpenguins.load_penguins[]
data.head[]

loàiislandbill_length_mmbill_depth_mmflipper_length_mmbody_mass_gsexyear0AdelieTorgersen39. 118. 7181. 03750. 0male20071AdelieTorgersen39. 517. 4186. 03800. 0nữ20072AdelieTorgersen40. 318. 0195. 03250. 0nữ20073AdelieTorgersenNaNNaNNaNNaNNaN20074AdelieTorgersen36. 719. 3193. 03450. 0nữ2007

Mục tiêu của ngày hôm nay là cho bạn thấy rất nhiều ví dụ cho thấy cách tùy chỉnh các khía cạnh khác nhau của chú giải. Hy vọng rằng sau khi đọc bài đăng này, bạn sẽ có thể lấy những phần mình cần và xây dựng huyền thoại tùy chỉnh của riêng mình

Biểu đồ cơ sở sẽ là biểu đồ phân tán có chiều dài chân chèo so với chiều dài mỏ, được tô màu theo loài

FLIPPER_LENGTH = data["flipper_length_mm"].values
BILL_LENGTH = data["bill_length_mm"].values

SPECIES = data["species"].values
SPECIES_ = np.unique[SPECIES]

COLORS = ["#1B9E77", "#D95F02", "#7570B3"]

Chú thích mặc định

Hãy bắt đầu bằng cách tạo biểu đồ và gọi

FLIPPER_LENGTH = data["flipper_length_mm"].values
BILL_LENGTH = data["bill_length_mm"].values

SPECIES = data["species"].values
SPECIES_ = np.unique[SPECIES]

COLORS = ["#1B9E77", "#D95F02", "#7570B3"]
1 để xem hành vi mặc định của matplotlib khi thêm chú giải là gì

fig, ax = plt.subplots[figsize=[8,8]]
for species, color in zip[SPECIES_, COLORS]:
    idxs = np.where[SPECIES == species]
    # No legend will be generated if we don't pass label=species
    ax.scatter[
        FLIPPER_LENGTH[idxs], BILL_LENGTH[idxs], label=species,
        s=50, color=color, alpha=0.7
    ]
    
ax.legend[];

Theo mặc định, Matplotlib tự động tạo chú giải phản ánh chính xác màu sắc và nhãn mà chúng tôi đã chuyển. Thông thường, nó cũng đặt huyền thoại ở một nơi tốt. Nhưng đó không phải là trường hợp ở đây vì truyền thuyết trùng lặp với một trong các dấu chấm

Điểm đánh dấu tự động chính xác

Ngoài ra, Matplotlib còn phản ánh các điểm đánh dấu khác nhau trong biểu đồ. Nên ae cứ quan tâm dùng mấy cái marker đẹp còn legend sẽ update miễn phí

________số 8

Bây giờ, hãy xem nhiều cách tiếp cận khác nhau mà người ta có thể sử dụng để định vị chú giải ở những nơi khác nhau

Điều chỉnh vị trí chú thích bằng
FLIPPER_LENGTH = data["flipper_length_mm"].values
BILL_LENGTH = data["bill_length_mm"].values

SPECIES = data["species"].values
SPECIES_ = np.unique[SPECIES]

COLORS = ["#1B9E77", "#D95F02", "#7570B3"]
2

Điều đầu tiên người ta có thể làm là truyền một cái gì đó cho đối số

FLIPPER_LENGTH = data["flipper_length_mm"].values
BILL_LENGTH = data["bill_length_mm"].values

SPECIES = data["species"].values
SPECIES_ = np.unique[SPECIES]

COLORS = ["#1B9E77", "#D95F02", "#7570B3"]
2. Đây có thể là một chuỗi bằng tiếng Anh đơn giản cho biết vị trí của nhãn hoặc một số. Bạn có thể tìm thấy mô tả đầy đủ về các mã này trong tài liệu matplotlib của đối số
FLIPPER_LENGTH = data["flipper_length_mm"].values
BILL_LENGTH = data["bill_length_mm"].values

SPECIES = data["species"].values
SPECIES_ = np.unique[SPECIES]

COLORS = ["#1B9E77", "#D95F02", "#7570B3"]
2

plt.plot[x, y, label='First Line']
plt.plot[x2, y2, label='Second Line']
2

Truyền thuyết bên ngoài khu vực cốt truyện với
FLIPPER_LENGTH = data["flipper_length_mm"].values
BILL_LENGTH = data["bill_length_mm"].values

SPECIES = data["species"].values
SPECIES_ = np.unique[SPECIES]

COLORS = ["#1B9E77", "#D95F02", "#7570B3"]
5

Cũng có thể đưa nó vào vị trí chú giải bên ngoài vùng vẽ đồ thị [i. e. ra khỏi trục]. Để làm như vậy, chúng ta cần tạo khoảng trống trong hình bất động sản nhờ hàm

FLIPPER_LENGTH = data["flipper_length_mm"].values
BILL_LENGTH = data["bill_length_mm"].values

SPECIES = data["species"].values
SPECIES_ = np.unique[SPECIES]

COLORS = ["#1B9E77", "#D95F02", "#7570B3"]
6, sau đó sử dụng cùng một đối số
FLIPPER_LENGTH = data["flipper_length_mm"].values
BILL_LENGTH = data["bill_length_mm"].values

SPECIES = data["species"].values
SPECIES_ = np.unique[SPECIES]

COLORS = ["#1B9E77", "#D95F02", "#7570B3"]
2 được mô tả ở trên

plt.plot[x, y, label='First Line']
plt.plot[x2, y2, label='Second Line']
6

Người ta có thể làm điều tương tự để đặt chú thích ở phía bên trái của cốt truyện

plt.plot[x, y, label='First Line']
plt.plot[x2, y2, label='Second Line']
7

Chúng tôi có thể có chú thích trên đầu trang/dưới cùng? . Trong trường hợp này, sẽ hợp lý hơn nhiều khi có các mục nhập cạnh nhau, vì vậy chúng tôi sử dụng

FLIPPER_LENGTH = data["flipper_length_mm"].values
BILL_LENGTH = data["bill_length_mm"].values

SPECIES = data["species"].values
SPECIES_ = np.unique[SPECIES]

COLORS = ["#1B9E77", "#D95F02", "#7570B3"]
8 để nói với Matplotlib rằng chú giải có ba cột

plt.plot[x, y, label='First Line']
plt.plot[x2, y2, label='Second Line']
9

plt.xlabel['Plot Number']
plt.ylabel['Important var']
plt.title['Interesting Graph\nCheck it out']
plt.legend[]
plt.show[]
0

Căn chỉnh chú thích với trục

Có thể căn chỉnh cốt truyện sang phải hoặc trái không?

Một điểm khác biệt với các ô ở trên là ở đây chúng tôi không sử dụng

FLIPPER_LENGTH = data["flipper_length_mm"].values
BILL_LENGTH = data["bill_length_mm"].values

SPECIES = data["species"].values
SPECIES_ = np.unique[SPECIES]

COLORS = ["#1B9E77", "#D95F02", "#7570B3"]
9. Nếu chúng ta muốn căn chỉnh ranh giới của chú giải với ranh giới của trục, sẽ dễ dàng hơn khi sử dụng mặc định là trục. Lưu ý giá trị
fig, ax = plt.subplots[figsize=[8,8]]
for species, color in zip[SPECIES_, COLORS]:
    idxs = np.where[SPECIES == species]
    # No legend will be generated if we don't pass label=species
    ax.scatter[
        FLIPPER_LENGTH[idxs], BILL_LENGTH[idxs], label=species,
        s=50, color=color, alpha=0.7
    ]
    
ax.legend[];
0. Nó có nghĩa là chú thích là 5% chiều cao của trục trên ranh giới trên cùng của nó

data = palmerpenguins.load_penguins[]
data.head[]
0

Tùy chỉnh nhãn

Người ta có thể lưu trữ đối tượng được trả về bởi

FLIPPER_LENGTH = data["flipper_length_mm"].values
BILL_LENGTH = data["bill_length_mm"].values

SPECIES = data["species"].values
SPECIES_ = np.unique[SPECIES]

COLORS = ["#1B9E77", "#D95F02", "#7570B3"]
1 và làm nhiều điều thú vị với nó

Truyền thuyết được trả về có phương thức

fig, ax = plt.subplots[figsize=[8,8]]
for species, color in zip[SPECIES_, COLORS]:
    idxs = np.where[SPECIES == species]
    # No legend will be generated if we don't pass label=species
    ax.scatter[
        FLIPPER_LENGTH[idxs], BILL_LENGTH[idxs], label=species,
        s=50, color=color, alpha=0.7
    ]
    
ax.legend[];
2 trả về danh sách các đối tượng
fig, ax = plt.subplots[figsize=[8,8]]
for species, color in zip[SPECIES_, COLORS]:
    idxs = np.where[SPECIES == species]
    # No legend will be generated if we don't pass label=species
    ax.scatter[
        FLIPPER_LENGTH[idxs], BILL_LENGTH[idxs], label=species,
        s=50, color=color, alpha=0.7
    ]
    
ax.legend[];
3. Những đối tượng này có rất nhiều phương thức mà người ta có thể sử dụng để tùy chỉnh giao diện của văn bản

data = palmerpenguins.load_penguins[]
data.head[]
1

fig, ax = plt.subplots[figsize=[8,8]]
for species, color in zip[SPECIES_, COLORS]:
    idxs = np.where[SPECIES == species]
    # No legend will be generated if we don't pass label=species
    ax.scatter[
        FLIPPER_LENGTH[idxs], BILL_LENGTH[idxs], label=species,
        s=50, color=color, alpha=0.7
    ]
    
ax.legend[];
4

Hãy xem một ví dụ khác với nhiều tinh chỉnh hơn

data = palmerpenguins.load_penguins[]
data.head[]
2

Rất nhiều thứ có thể được tùy chỉnh

Nếu bạn muốn tự mình thực hiện một số nghiên cứu, bạn luôn có thể gọi cho

fig, ax = plt.subplots[figsize=[8,8]]
for species, color in zip[SPECIES_, COLORS]:
    idxs = np.where[SPECIES == species]
    # No legend will be generated if we don't pass label=species
    ax.scatter[
        FLIPPER_LENGTH[idxs], BILL_LENGTH[idxs], label=species,
        s=50, color=color, alpha=0.7
    ]
    
ax.legend[];
5 để xem các thuộc tính và phương thức của đối tượng
fig, ax = plt.subplots[figsize=[8,8]]
for species, color in zip[SPECIES_, COLORS]:
    idxs = np.where[SPECIES == species]
    # No legend will be generated if we don't pass label=species
    ax.scatter[
        FLIPPER_LENGTH[idxs], BILL_LENGTH[idxs], label=species,
        s=50, color=color, alpha=0.7
    ]
    
ax.legend[];
6 là gì

Tùy chỉnh tiêu đề

Cho đến nay, huyền thoại không có tiêu đề. Hãy thêm một và tùy chỉnh một số thuộc tính của nó

data = palmerpenguins.load_penguins[]
data.head[]
3

Hãy đẩy xa hơn một chút

data = palmerpenguins.load_penguins[]
data.head[]
4

fig, ax = plt.subplots[figsize=[8,8]]
for species, color in zip[SPECIES_, COLORS]:
    idxs = np.where[SPECIES == species]
    # No legend will be generated if we don't pass label=species
    ax.scatter[
        FLIPPER_LENGTH[idxs], BILL_LENGTH[idxs], label=species,
        s=50, color=color, alpha=0.7
    ]
    
ax.legend[];
7

Và thậm chí xa hơn nữa?

data = palmerpenguins.load_penguins[]
data.head[]
5

Tùy chỉnh tay cầm

data = palmerpenguins.load_penguins[]
data.head[]
6

Tùy chỉnh bố cục

Một số tên đối số có liên quan và ý nghĩa của chúng

  • fig, ax = plt.subplots[figsize=[8,8]]
    for species, color in zip[SPECIES_, COLORS]:
        idxs = np.where[SPECIES == species]
        # No legend will be generated if we don't pass label=species
        ax.scatter[
            FLIPPER_LENGTH[idxs], BILL_LENGTH[idxs], label=species,
            s=50, color=color, alpha=0.7
        ]
        
    ax.legend[];
    8. Vùng đệm giữa các trục và đường viền chú giải, theo đơn vị cỡ chữ
  • fig, ax = plt.subplots[figsize=[8,8]]
    for species, color in zip[SPECIES_, COLORS]:
        idxs = np.where[SPECIES == species]
        # No legend will be generated if we don't pass label=species
        ax.scatter[
            FLIPPER_LENGTH[idxs], BILL_LENGTH[idxs], label=species,
            s=50, color=color, alpha=0.7
        ]
        
    ax.legend[];
    9. Khoảng trắng phân đoạn bên trong đường viền chú giải, tính theo đơn vị cỡ chữ
  • # The markers we use in the scatterplot
    MARKERS = ["o", "^", "s"] # circle, triangle, square
    
    fig, ax = plt.subplots[figsize=[8,8]]
    
    for species, color, marker in zip[SPECIES_, COLORS, MARKERS]:
        idxs = np.where[SPECIES == species]
        ax.scatter[
            FLIPPER_LENGTH[idxs], BILL_LENGTH[idxs], label=species,
            s=50, color=color, marker=marker, alpha=0.7
        ]
        
    ax.legend[];
    0. Khoảng cách giữa các cột, theo đơn vị cỡ chữ
  • # The markers we use in the scatterplot
    MARKERS = ["o", "^", "s"] # circle, triangle, square
    
    fig, ax = plt.subplots[figsize=[8,8]]
    
    for species, color, marker in zip[SPECIES_, COLORS, MARKERS]:
        idxs = np.where[SPECIES == species]
        ax.scatter[
            FLIPPER_LENGTH[idxs], BILL_LENGTH[idxs], label=species,
            s=50, color=color, marker=marker, alpha=0.7
        ]
        
    ax.legend[];
    1. Độ dài của phần xử lý chú giải, tính theo đơn vị cỡ chữ
  • # The markers we use in the scatterplot
    MARKERS = ["o", "^", "s"] # circle, triangle, square
    
    fig, ax = plt.subplots[figsize=[8,8]]
    
    for species, color, marker in zip[SPECIES_, COLORS, MARKERS]:
        idxs = np.where[SPECIES == species]
        ax.scatter[
            FLIPPER_LENGTH[idxs], BILL_LENGTH[idxs], label=species,
            s=50, color=color, marker=marker, alpha=0.7
        ]
        
    ax.legend[];
    2. Vùng đệm giữa điều khiển chú thích và văn bản, theo đơn vị cỡ chữ
  • # The markers we use in the scatterplot
    MARKERS = ["o", "^", "s"] # circle, triangle, square
    
    fig, ax = plt.subplots[figsize=[8,8]]
    
    for species, color, marker in zip[SPECIES_, COLORS, MARKERS]:
        idxs = np.where[SPECIES == species]
        ax.scatter[
            FLIPPER_LENGTH[idxs], BILL_LENGTH[idxs], label=species,
            s=50, color=color, marker=marker, alpha=0.7
        ]
        
    ax.legend[];
    3. Khoảng cách dọc giữa các mục chú thích, tính theo đơn vị cỡ chữ
  • # The markers we use in the scatterplot
    MARKERS = ["o", "^", "s"] # circle, triangle, square
    
    fig, ax = plt.subplots[figsize=[8,8]]
    
    for species, color, marker in zip[SPECIES_, COLORS, MARKERS]:
        idxs = np.where[SPECIES == species]
        ax.scatter[
            FLIPPER_LENGTH[idxs], BILL_LENGTH[idxs], label=species,
            s=50, color=color, marker=marker, alpha=0.7
        ]
        
    ax.legend[];
    4. Kích thước tương đối của các điểm đánh dấu chú giải so với những điểm được vẽ ban đầu

data = palmerpenguins.load_penguins[]
data.head[]
7

Hãy sử dụng bố cục 3 cột và tùy chỉnh khoảng cách giữa các cột

data = palmerpenguins.load_penguins[]
data.head[]
8

Và cuối cùng, một ví dụ tùy chỉnh nhiều khía cạnh cùng một lúc

data = palmerpenguins.load_penguins[]
data.head[]
9

fig, ax = plt.subplots[figsize=[8,8]]
for species, color in zip[SPECIES_, COLORS]:
    idxs = np.where[SPECIES == species]
    # No legend will be generated if we don't pass label=species
    ax.scatter[
        FLIPPER_LENGTH[idxs], BILL_LENGTH[idxs], label=species,
        s=50, color=color, alpha=0.7
    ]
    
ax.legend[];
7

Đi đâu tiếp theo?

Sẽ không thực sự thú vị khi xem cách những thứ này được sử dụng trong các ví dụ thực tế phải không? . Sau đây là danh sách các trực quan hóa tùy chỉnh cao được tạo trong Matplotlib có chứa các huyền thoại đẹp mắt được tạo bằng các thủ thuật được hiển thị ở trên. có một cái nhìn

Chủ Đề