Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menambah label pada imej Matplotlib dalam Python

Bagaimana untuk menambah label pada imej Matplotlib dalam Python

王林
王林ke hadapan
2023-05-12 12:52:064348semak imbas

1. Tambah label teks plt.text()

digunakan untuk menambah teks pada kedudukan koordinat yang ditentukan pada imej semasa proses lukisan. Apa yang perlu digunakan ialah kaedah plt.text().

Ia mempunyai tiga parameter utama:

plt.text(x, y, s)

di mana x dan y mewakili koordinat paksi x dan y bagi titik masuk. s mewakili rentetan.

Perlu diingatkan bahawa koordinat di sini, jika label xticks dan yticks ditetapkan, jangan merujuk kepada label, tetapi nilai asal x dan paksi semasa melukis.

Oleh kerana terdapat terlalu banyak parameter, saya tidak akan menerangkannya satu per satu. Ketahui penggunaannya berdasarkan kod.

ha = 'center’ bermaksud penjajaran menegak adalah berpusat, fontsize = 30 bermaksud saiz fon ialah 30 dan rotation = -25 bermaksud sudut putaran ialah -25 darjah. c Tetapkan warna, alpha Tetapkan ketelusan. va menunjukkan penjajaran mendatar.

1. Contoh

Kod menambah dua perenggan teks pada imej, satu ialah tera air condong bagi "Wide on the Journey~" dengan ketelusan 0.4.

Bahagian lain adalah untuk menandakan harga penutupan hari itu berhampiran setiap bucu garis poli.

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = range(9)
y = [5.12, 5.15, 5.13, 5.10, 5.2, 5.25, 5.19, 5.24, 5.31]
c = 0.5 * (min(x) + max(x))
d = min(y) + 0.3 * (max(y) - min(y))
# 水印效果
plt.text(c, d, '旅途中的宽~', ha = 'center', fontsize = 30, rotation = -25, c = 'gray', alpha = 0.4)
plt.plot(x, y, label = '股票A收盘价', c = 'r', ls = '-.', marker = 'D', lw = 2)
plt.xticks(x, [
	'2022-03-27', '2022-03-28', '2022-03-29', '2022-03-30',
	'2022-03-31', '2022-04-01', '2022-04-04', '2022-04-05',
	'2022-04-06'], rotation = 45)
plt.title('某股票收盘价时序图')
plt.xlabel('日期')
plt.ylabel('价格')
plt.grid(True)
plt.legend()
# 标出每天的收盘价
for a, b in zip(x, y):
	plt.text(a, b + 0.01, '%.2f' % b, ha = 'center', va = 'bottom', fontsize = 14)
plt.show()

Bagaimana untuk menambah label pada imej Matplotlib dalam Python

2. Tambah komen plt.annotate()

Berdasarkan kod contoh di atas, tambah ulasan. Anotasi ialah penjelasan lokasi tertentu dalam imej, yang boleh ditunjuk dengan anak panah.

Tambah ulasan menggunakan plt.annotate()kaedah

Parameter biasa dalam sintaksnya adalah seperti berikut

plt.annotate(str,xy,xytext,xycoords,arrowcoords)

di mana str ialah rentetan yang akan digunakan dalam ulasan, iaitu, teks ulasan ; xy merujuk kepada titik koordinat beranotasi; untuk menerangkan koordinat titik. Nilai tetapan lalai kepada "data", yang diterangkan oleh koordinat (x, y). Nilai tetapan pilihan lain adalah seperti berikut, di mana angka merujuk kepada keseluruhan kanvas sebagai sistem rujukan. Dan kapak bermakna hanya untuk salah satu kawasan objek paksi. xytextxycoords

Bagaimana untuk menambah label pada imej Matplotlib dalam Python

ialah kamus yang digunakan untuk menetapkan sifat anak panah. Parameter yang ditulis di luar kamus ini mewakili atribut teks anotasi.

arrowpropsNilai yang boleh ditetapkan dalam kamus ialah:

Bagaimana untuk menambah label pada imej Matplotlib dalam Python Penjelasan lanjut tentang parameter ini: Jumlah panjang anak panah pertama kali ditentukan oleh koordinat kedudukan titik beranotasi dan anotasi Panjang anak panah ditentukan oleh koordinat kedudukan teks Anda boleh melaraskan lagi panjang anak panah dengan melaraskan kekunci pengecutan dalam parameter anak panah mewakili peratusan panjang yang dipendekkan daripada anak panah kepada jumlah panjang (panjang ditentukan oleh koordinat kedudukan titik beranotasi dan koordinat kedudukan teks anotasi ). Apabila pengecutan tidak ditetapkan, pengecutan lalai kepada 0, iaitu, tiada pemendekan. Apabila pengecutan adalah sangat besar, hampir kepada 1, kesannya adalah bersamaan dengan tiada pemendekan.

1. Contoh

Ambil tanda titik harga terendah pada carta sebagai contoh. Tambahkan anak panah merah dan perkataan "harga terendah" pada kedudukan sasaran.

Parameter lain, seperti menetapkan fon teks anotasi, c atau warna mewakili warna dan saiz fon mewakili saiz fon. Ketahui lebih lanjut tentang hartanah dan cuba sendiri.

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = range(9)
y = [5.12, 5.15, 5.13, 5.10, 5.2, 5.25, 5.19, 5.24, 5.31]
c = 0.5 * (min(x) + max(x))
d = min(y) + 0.3 * (max(y) - min(y))
# 仿水印效果
plt.text(c, d, '旅途中的宽', ha = 'center', fontsize = 30, rotation = -25, c = 'gray', alpha = 0.4)
plt.plot(x, y, label = '股票A收盘价', c = 'r', ls = '-.', marker = 'D', lw = 2)
# plt.plot([5.09, 5.13, 5.16, 5.12, 5.09, 5.25, 5.16, 5.20, 5.25], label='股票B收盘价', c='g', ls=':', marker='H', lw=4)
plt.xticks(x, [
    '2022-03-27', '2022-03-28', '2022-03-29', '2022-03-30',
    '2022-03-31', '2022-04-01', '2022-04-04', '2022-04-05',
    '2022-04-06'], rotation = 45)
plt.title('某股票收盘价时序图')
plt.xlabel('日期')
plt.ylabel('价格')
plt.grid(True)
plt.legend()
# 标出每天的收盘价
for a, b in zip(x, y):
    plt.text(a, b + 0.01, '%.3f'% b, ha = 'center', va = 'bottom', fontsize = 9)
# 添加注释
plt.annotate('最低价', (x[y.index(min(y))], min(y)), (x[y.index(min(y))] + 0.5, min(y)), xycoords = 'data',
             arrowprops = dict(facecolor = 'r', shrink = 0.1), c = 'r',fontsize = 15)
plt.show()

Bagaimana untuk menambah label pada imej Matplotlib dalam PythonBerikut ialah kesan berbeza lebar anak panah anotasi ialah 3, lebar kepala anak panah ialah 10, panjang ialah 20, dipendekkan sebanyak 0.05, dan anak panah berwarna hijau, fon anotasi berwarna merah. Contoh kod adalah seperti berikut:

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = range(9)
y = [5.12, 5.15, 5.13, 5.10, 5.2, 5.25, 5.19, 5.24, 5.31]
c = 0.5 * (min(x) + max(x))
d = min(y) + 0.3 * (max(y)-min(y))
plt.plot(x, y, label = '股票A收盘价', c = 'k', ls = '-.', marker = 'D', lw = 2)
plt.xticks(x, [
    '2022-03-27', '2022-03-28', '2022-03-29', '2022-03-30',
    '2022-03-31', '2022-04-01', '2022-04-04', '2022-04-05',
    '2022-04-06'], rotation = 45)
plt.title('某股票收盘价时序图')
plt.xlabel('日期')
plt.ylabel('价格')
plt.grid(True)
plt.legend()
# 标出每天的收盘价
for a, b in zip(x, y):
    plt.text(a, b+0.01, '%.1f'%b, ha='center', va='bottom', fontsize=9)
plt.text(c, d, '旅途中的宽', ha = 'center', fontsize = 50, rotation = -25, c = 'r')
plt.annotate('最低价', (x[y.index(min(y))], min(y)), (x[y.index(min(y))] + 2, min(y)), xycoords = 'data',
             arrowprops = dict(width = 3, headwidth = 10, headlength = 20, facecolor = 'g', shrink = 0.05), c = 'r',fontsize = 20)
plt.show()

Atas ialah kandungan terperinci Bagaimana untuk menambah label pada imej Matplotlib dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam