Ինչպե՞ս փոխել ուղղահայաց տարածությունը լեգենդի գրառումների միջև Matplotlib-ում:


Լեգենդները կարևոր դեր են խաղում գծագրված տարրերի մասին տեղեկատվության փոխանցման գործում, որոնք հիմնականում պարունակվում են matplotlib-ում, որը Python-ի հանրաճանաչ գրադարանն է, որն օգտագործվում է տվյալների վիզուալիզացիայի համար, բայց երբեմն, երբ գործ ունենք բարդ վիզուալիզացիաների հետ, լեգենդի գրառումների միջև կանխադրված ուղղահայաց տարածությունը կարող է իդեալական չլինել: . Այս հոդվածը ուսումնասիրում է Matplotlib-ում լեգենդների գրառումների միջև ուղղահայաց տարածությունը փոփոխելու և հարմարեցնելու տեխնիկան՝ թույլ տալով օգտվողներին բարձրացնել իրենց սյուժեների ընթերցանությունը և գեղագիտական գրավչությունը:

Ի՞նչ է լեգենդը Matpltlib գրաֆիկում:

Matplotlib գրաֆիկում լեգենդը բանալին կամ ուղեցույց է, որը բացատրություն է տալիս սյուժեում ցուցադրվող տարբեր տարրերի համար: Այն օգնում է բացահայտել սյուժեում օգտագործվող տարբեր գույների, մարկերների կամ գծային ոճերի նշանակությունը: Լեգենդը սովորաբար ներառում է յուրաքանչյուր տարրի հետ կապված պիտակներ կամ նշաններ և դրանց համապատասխան նկարագրությունները: Այն թույլ է տալիս դիտողին հասկանալ սյուժեի ներսում տվյալների կամ կատեգորիաների ներկայացումը: Լեգենդը արժեքավոր բաղադրիչ է տեղեկատվության փոխանցման և գրաֆիկի մեկնաբանելիությունը բարելավելու համար:

Ինչպե՞ս փոխել ուղղահայաց տարածությունը Matplotlib-ում լեգենդի գրառումների միջև:

Matplotlib-ում լեգենդի գրառումների միջև ուղղահայաց տարածությունը փոխելու համար կարող եք հետևել այս քայլերին

  • Ներմուծեք անհրաժեշտ գրադարանները −

import matplotlib.pyplot as plt
  • Ստեղծեք սյուժեն և ավելացրեք լեգենդը

# Plotting code...
plt.legend()
  • Ստացեք լեգենդի բռնակներ և պիտակներ -

handles, labels = plt.gca().get_legend_handles_labels()
  • Ստեղծեք նոր լեգենդ փոփոխված ուղղահայաց տարածությամբ −

# Specify the desired vertical spacing (adjust the value as needed)
spacing = 1.0

# Create a new legend with modified spacing
new_legend = plt.legend(handles, labels, loc='upper right', ncol=1, frameon=False, bbox_to_anchor=(1.1, 1.1), title='Legend', borderpad=spacing)

Վերևի կոդում տարածությունը փոփոխական է, որը ներկայացնում է ցանկալի ուղղահայաց տարածությունը լեգենդի գրառումների միջև: Դուք կարող եք հարմարեցնել այս արժեքը ըստ ձեր կարիքների: Bbox_to_anchor պարամետրը սահմանում է լեգենդի դիրքը, և դուք կարող եք փոփոխել դրա կոորդինատները, որպեսզի այն պատշաճ կերպով տեղադրվի ձեր սյուժեում:

  • Հեռացրեք հին լեգենդը −

# Remove the old legend
plt.gca().get_legend().remove()
  • Ավելացնել նոր լեգենդը սյուժեին −

# Add the new legend to the plot
plt.gca().add_artist(new_legend)
  • Ցուցադրել սյուժեն -

plt.show()

Հետևելով այս քայլերին, դուք կարող եք հարմարեցնել Matplotlib-ի լեգենդների գրառումների միջև ուղղահայաց տարածությունը՝ ըստ ձեր նախասիրության:

Ստորև բերված է ծրագրի օրինակը, թե ինչպես փոխել ուղղահայաց տարածությունը Matplotlib-ում լեգենդների մուտքերի միջև՝ օգտագործելով ցրված գծապատկերով ծիածանաթաղանթի հավաքածուն −

Օրինակ

import matplotlib.pyplot as plt
import numpy as np

# Load an example dataset (Iris dataset)
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data
y = iris.target
target_names = iris.target_names

# Plotting the data
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')

# Create a legend with custom vertical spacing
legend = plt.legend(target_names, title='Species', loc='lower right')

# Set the vertical spacing between legend entries
legend.get_frame().set_linewidth(0.0)  # Remove border around the legend
legend.get_title().set_fontsize('12')  # Set the font size of the legend title
for handle in legend.legendHandles:
   handle.set_sizes([30])  # Set the marker size of the legend entries
legend._legend_box.align = "left"  # Align legend entries vertically

# Adjust the vertical spacing between legend entries
legend._set_loc(1)
plt.subplots_adjust(right=0.8)

# Display the plot
plt.show()

Արդյունք

Լեգենդի գրառումների միջև ուղղահայաց տարածությունը փոխելու համար մենք մուտք ենք գործում լեգենդի հատկություններ՝ օգտագործելով legend.get_frame(), legend.get_title() և legend.legendHandles: Մենք հեռացնում ենք լեգենդի շուրջ եզրագիծը, սահմանում ենք լեգենդի վերնագրի տառաչափը, սահմանում ենք լեգենդի գրառումների նշիչի չափը և լեգենդի գրառումները հավասարեցնում ենք ուղղահայաց: Legend._set_loc(1) տողը կարգավորում է ուղղահայաց տարածությունը, իսկ plt.subplots_adjust()-ն օգտագործվում է սյուժեի դասավորությունը հարմարեցնելու համար:

Ստորև բերված է ծրագրի օրինակը, թե ինչպես փոխել ուղղահայաց տարածությունը Matplotlib-ում լեգենդների մուտքերի միջև՝ օգտագործելով ծիածանաթաղանթի հավաքածուն գծային գրաֆիկով −

Օրինակ

import matplotlib.pyplot as plt
import numpy as np

# Load an example dataset (Iris dataset)
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data
y = iris.target
target_names = iris.target_names

# Calculate the average sepal length for each species
avg_sepal_length = []
for i in range(len(target_names)):
   avg_sepal_length.append(np.mean(X[y == i, 0]))

# Plotting the data
plt.bar(target_names, avg_sepal_length)
plt.xlabel('Species')
plt.ylabel('Average Sepal Length')

# Create a legend with custom vertical spacing
legend = plt.legend(['Average Sepal Length'], loc='upper right')

# Set the vertical spacing between legend entries
legend.get_frame().set_linewidth(0.0)  # Remove border around the legend
legend.get_title().set_fontsize('12')  # Set the font size of the legend title
legend._legend_box.align = "left"  # Align legend entries vertically

# Adjust the vertical spacing between legend entries
legend._set_loc(1)
plt.subplots_adjust(right=0.8)

# Display the plot
plt.show()

Արդյունք

Եզրակացություն

Եզրափակելով, Matplotlib-ում լեգենդների գրառումների միջև ուղղահայաց տարածությունը փոխելը կարելի է հասնել լեգենդի օբյեկտի հատկությունները մուտք գործելու և փոփոխելու միջոցով: Հեռացնելով լեգենդի եզրագիծը, կարգավորելով վերնագրի տառատեսակի չափը և լեգենդի գրառումները ուղղահայաց հավասարեցնելով, մենք կարող ենք հարմարեցնել տարածությունը ըստ մեր նախասիրությունների: Սա թույլ է տալիս ավելի լավ վերահսկել սյուժեում լեգենդի դասավորությունը և ներկայացնելը: Օգտագործելով այս տեխնիկան՝ մենք կարող ենք բարձրացնել մեր գրաֆիկների հստակությունն ու տեսողական գրավչությունը՝ դրանք դարձնելով ավելի տեղեկատվական և գրավիչ հանդիսատեսի համար: