如何在 Matplotlib 中找到定性颜色图的颜色限制?
How do I find color limits for qualitative colormaps in Matplotlib?
我有以下生成散点图的代码:
plt.scatter(df['column_A'], y= df['column_B'],
alpha = .6, c = df['column_C'], cmap = 'Accent')
生成this chart where points are colored based on values from 'column_C'
我在 cmap 中使用定性颜色图,它会自动在 column_C 上创建间隔并相应地为点着色。我可以直观地说灰色组的范围从大约 10 到数据的最大值(大约 12),但我想访问确切的数字。有办法吗?
非常感谢
默认情况下,颜色范围从 column_C
的最小值到最大值。对于具有 N
颜色的颜色图,将有 N
段,因此 N+1
边界可以用 np.linspace()
.
计算
这是一些说明代码。添加了带有默认刻度的颜色条和在颜色边框处带有刻度的颜色条。
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df = pd.DataFrame({'column_A': np.random.rand(100),
'column_B': np.random.rand(100),
'column_C': np.random.rand(100) * 20 - 8})
cmap = plt.get_cmap('Accent')
plt.scatter(df['column_A'], y=df['column_B'],
alpha=.6, c=df['column_C'], cmap=cmap)
plt.colorbar() # the default color bar
color_borders = np.linspace(df['column_C'].min(), df['column_C'].max(), cmap.N + 1)
plt.colorbar(ticks=color_borders) # ticks at the color borders
plt.show()
我有以下生成散点图的代码:
plt.scatter(df['column_A'], y= df['column_B'],
alpha = .6, c = df['column_C'], cmap = 'Accent')
生成this chart where points are colored based on values from 'column_C'
我在 cmap 中使用定性颜色图,它会自动在 column_C 上创建间隔并相应地为点着色。我可以直观地说灰色组的范围从大约 10 到数据的最大值(大约 12),但我想访问确切的数字。有办法吗?
非常感谢
默认情况下,颜色范围从 column_C
的最小值到最大值。对于具有 N
颜色的颜色图,将有 N
段,因此 N+1
边界可以用 np.linspace()
.
这是一些说明代码。添加了带有默认刻度的颜色条和在颜色边框处带有刻度的颜色条。
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df = pd.DataFrame({'column_A': np.random.rand(100),
'column_B': np.random.rand(100),
'column_C': np.random.rand(100) * 20 - 8})
cmap = plt.get_cmap('Accent')
plt.scatter(df['column_A'], y=df['column_B'],
alpha=.6, c=df['column_C'], cmap=cmap)
plt.colorbar() # the default color bar
color_borders = np.linspace(df['column_C'].min(), df['column_C'].max(), cmap.N + 1)
plt.colorbar(ticks=color_borders) # ticks at the color borders
plt.show()