Saya mencoba memplot angka tanpa tanda centang atau angka pada salah satu sumbu (saya menggunakan sumbu dalam arti tradisional, bukan nomenklatur matplotlib!). Masalah yang saya temui adalah di mana matplotlib menyesuaikan ticklabels x (y) dengan mengurangi nilai N, kemudian menambahkan N di akhir sumbu.
Ini mungkin tidak jelas, tetapi contoh sederhana berikut menyoroti masalah, dengan '6,18' menjadi nilai N yang menyinggung:
import matplotlib.pyplot as plt
import random
prefix = 6.18
rx = [prefix+(0.001*random.random()) for i in arange(100)]
ry = [prefix+(0.001*random.random()) for i in arange(100)]
plt.plot(rx,ry,'ko')
frame1 = plt.gca()
for xlabel_i in frame1.axes.get_xticklabels():
xlabel_i.set_visible(False)
xlabel_i.set_fontsize(0.0)
for xlabel_i in frame1.axes.get_yticklabels():
xlabel_i.set_fontsize(0.0)
xlabel_i.set_visible(False)
for tick in frame1.axes.get_xticklines():
tick.set_visible(False)
for tick in frame1.axes.get_yticklines():
tick.set_visible(False)
plt.show()
Tiga hal yang ingin saya ketahui adalah:
Cara mematikan perilaku ini sejak awal (walaupun dalam banyak kasus itu berguna, itu tidak selalu!) Saya telah melihat
matplotlib.axis.XAxis
dan tidak menemukan sesuatu yang sesuaiBagaimana saya bisa membuat N menghilang (yaitu
X.set_visible(False)
)Apakah ada cara yang lebih baik untuk melakukan hal di atas? Plot terakhir saya adalah subplot 4x4 dalam gambar, jika itu relevan.
sumber
Jawaban:
Alih-alih menyembunyikan setiap elemen, Anda dapat menyembunyikan seluruh sumbu:
Atau, Anda dapat mengatur kutu ke daftar kosong:
Dalam opsi kedua ini, Anda masih bisa menggunakan
plt.xlabel()
danplt.ylabel()
menambahkan label ke sumbu.sumber
'Axes3DSubplot' object has no attribute 'get_zaxis'
get_xaxis().set_visible(False)
. Saya pikir matplotlib dalam hal ini menginisialisasi beberapa parameter seolah-olah plotnya 2D.ax.set_zticks([])
akan melakukan apa yang Anda inginkanJika Anda ingin menyembunyikan hanya teks sumbu yang menjaga garis kisi:
Melakukan
set_visible(False)
atauset_ticks([])
juga akan menyembunyikan garis kisi.sumber
Jika Anda seperti saya dan tidak selalu mengambil sumbu
ax
,, ketika merencanakan angka, maka solusi sederhana adalah dengan melakukansumber
Agak dari utas lama tapi, ini tampaknya menjadi metode yang lebih cepat menggunakan versi terbaru dari matplotlib:
atur formatter utama untuk sumbu x
sumber
Saya sebenarnya tidak dapat membuat gambar tanpa batas atau data sumbu berdasarkan salah satu cuplikan kode di sini (bahkan yang diterima pada jawabannya). Setelah menggali beberapa dokumentasi API, saya mendarat di kode ini untuk membuat gambar saya
Saya menggunakan
tick_params
panggilan pada dasarnya mematikan informasi tambahan yang mungkin diberikan dan saya memiliki grafik yang sempurna di file output saya.sumber
Saya telah memberi kode warna pada gambar ini untuk mempermudah proses.
Anda dapat memiliki kontrol penuh atas gambar menggunakan perintah-perintah ini, untuk menyelesaikan jawaban yang saya tambahkan juga kontrol atas splines:
sumber
ax.set_xticklabels([])
danax.set_xticks([])
tidak bekerja untuk saya, tetapiax.axes.get_xaxis().set_visible(False)
berhasil.Saat menggunakan API berorientasi objek,
Axes
objek memiliki dua metode yang berguna untuk menghapus teks sumbu,set_xticklabels()
danset_xticks()
.Katakanlah Anda membuat plot menggunakan
Jika Anda hanya ingin menghapus label centang, Anda dapat menggunakannya
atau untuk menghilangkan kutu sepenuhnya, Anda bisa menggunakan
Metode-metode ini berguna untuk menentukan dengan tepat di mana Anda ingin kutu dan bagaimana Anda menginginkannya. Melewati daftar kosong menghasilkan tanpa kutu, atau tanpa label, masing-masing.
sumber
Salah satu trik bisa dengan mengatur warna label centang sebagai putih untuk menyembunyikannya!
sumber