Plot plot warna dalam Matplotlib

王林
Lepaskan: 2024-02-14 18:30:04
ke hadapan
1015 orang telah melayarinya

在 Matplotlib 中绘制颜色图

Kandungan soalan

Saya sangat suka peta warna tambahan dalam plot, seperti "Padat" atau "Ais". Walau bagaimanapun, saya kini menggunakan matplotlib untuk kebanyakan perancangan saya.

Adakah terdapat cara untuk menggunakan peta warna pyplot dalam angka matplotlib?

Apabila saya mengambil peta warna "ais" sebagai contoh, satu-satunya hasil yang saya dapat ialah warna rgb sebagai rentetan

import plotly.express as px

px.colors.sequential.ice
Salin selepas log masuk

Ini baru pulangan

['rgb(3, 5, 18)',
 'rgb(25, 25, 51)',
 'rgb(44, 42, 87)',
 'rgb(58, 60, 125)',
 'rgb(62, 83, 160)',
 'rgb(62, 109, 178)',
 'rgb(72, 134, 187)',
 'rgb(89, 159, 196)',
 'rgb(114, 184, 205)',
 'rgb(149, 207, 216)',
 'rgb(192, 229, 232)',
 'rgb(234, 252, 253)']
Salin selepas log masuk

Masalahnya, saya tidak tahu cara menggunakannya dalam plot matplotlib. Sesuatu yang saya cuba ialah mencipta peta warna tersuai

my_cmap = matplotlib.colors.listedcolormap(px.colors.sequential.ice, name='my_colormap_name')
Salin selepas log masuk

Tetapi ini memberi saya ralat berikut apabila digunakan dalam plot:

ValueError: Invalid RGBA argument: 'rgb(3, 5, 18)'
Salin selepas log masuk

Adakah sesiapa tahu cara menukarnya dengan betul?


Jawapan betul


Anda perlu menyahkod rentetan rgb:

import plotly.express as px
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors

samples = 20
ice = px.colors.sample_colorscale(px.colors.sequential.ice, samples)
rgb = [px.colors.unconvert_from_rgb_255(px.colors.unlabel_rgb(c)) for c in ice]

cmap = mcolors.listedcolormap(rgb, name='ice', n=samples)
Salin selepas log masuk

Demo:

import numpy as np

gradient = np.linspace(0, 1, 256)
gradient = np.vstack((gradient, gradient))
plt.imshow(gradient, aspect='auto', cmap=cmap)
plt.show()
Salin selepas log masuk

Keluaran:

Atas ialah kandungan terperinci Plot plot warna dalam Matplotlib. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan