Saya ingin membuat scatterplot (menggunakan matplotlib) di mana titik-titik diarsir menurut variabel ketiga. Saya sudah sangat dekat dengan ini:
plt.scatter(w, M, c=p, marker='s')
di mana w dan M adalah datapoints dan p adalah variabel yang ingin saya beri naungan.
Namun saya ingin melakukannya dalam skala abu-abu daripada warna. Adakah yang bisa membantu?
python
matplotlib
plot
scatter
Thomas Collett
sumber
sumber
mpl.cm
juga tersedia langsung sebagaiplt.cm
.plt.contour()
atauplt.contourf()
- tapi itu pertanyaan yang berbedaDalam matplotlib, warna abu-abu dapat diberikan sebagai string dengan nilai numerik antara 0-1.
Sebagai contoh
c = '0.1'
Kemudian Anda bisa mengonversi variabel ketiga Anda dalam nilai di dalam rentang ini dan menggunakannya untuk mewarnai poin Anda.
Dalam contoh berikut ini saya menggunakan posisi y titik sebagai nilai yang menentukan warna:
sumber
c
argumen, dengan nilai alpha di kolom keempat. Jika variabel ketiga adalah Z, denganshape=(n,1)
, makacolors = numpy.hstack((numpy.zeros_like(z), numpy.zeros_like(z), numpy.ones_like(z), z/z.max()))
memberikan efek yang sangat bagus (tentu saja bisa di-tweak).plt.colorbar()
akan melakukan ituTerkadang Anda mungkin perlu membuat plot warna dengan tepat berdasarkan case x-value . Misalnya, Anda mungkin memiliki kerangka data dengan 3 jenis variabel dan beberapa titik data. Dan Anda ingin melakukan hal berikut,
Dalam hal ini, Anda mungkin harus menulis ke fungsi pendek untuk memetakan nilai x ke nama warna yang sesuai sebagai daftar dan kemudian meneruskan daftar itu ke
plt.scatter
perintah.sumber