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
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)']
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')
Tetapi ini memberi saya ralat berikut apabila digunakan dalam plot:
ValueError: Invalid RGBA argument: 'rgb(3, 5, 18)'
Adakah sesiapa tahu cara menukarnya dengan 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)
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()
Keluaran:
Atas ialah kandungan terperinci Plot plot warna dalam Matplotlib. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!