Ինչպե՞ս փոխել ուղղահայաց տարածությունը լեգենդի գրառումների միջև 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-ում լեգենդների գրառումների միջև ուղղահայաց տարածությունը փոխելը կարելի է հասնել լեգենդի օբյեկտի հատկությունները մուտք գործելու և փոփոխելու միջոցով: Հեռացնելով լեգենդի եզրագիծը, կարգավորելով վերնագրի տառատեսակի չափը և լեգենդի գրառումները ուղղահայաց հավասարեցնելով, մենք կարող ենք հարմարեցնել տարածությունը ըստ մեր նախասիրությունների: Սա թույլ է տալիս ավելի լավ վերահսկել սյուժեում լեգենդի դասավորությունը և ներկայացնելը: Օգտագործելով այս տեխնիկան՝ մենք կարող ենք բարձրացնել մեր գրաֆիկների հստակությունն ու տեսողական գրավչությունը՝ դրանք դարձնելով ավելի տեղեկատվական և գրավիչ հանդիսատեսի համար: