python颜色表示_灰度颜色(0255)到MAtplotlib颜色表示

在使用matplotlib构建一些绘图时,我无法解决这个(看起来很容易)的问题。在

我有表示范围内整数的灰度颜色(0-255-更高的数字意味着更暗),在这个示例中可以简化df:colors = pd.DataFrame({'color1': [15], 'color2': [27], 'color3': [89],

'color4': [123], 'color5': [220], 'color6': [100],

'color7': [123], 'color8': [247], 'color9': [255]})

现在,通过循环,我想用以下颜色更改绘图背景:

^{pr2}$

通过使用matplotlib documentation我只能使用以下颜色格式:Matplotlib recognizes the following formats to specify a color:an RGB or RGBA tuple of float values in [0, 1] (e.g., (0.1, 0.2, 0.5)

or (0.1, 0.2, 0.5, 0.3));

a hex RGB or RGBA string (e.g., '#0F0F0F' or

'#0F0F0F0F');

a string representation of a float value in [0, 1]

inclusive for gray level (e.g., '0.5'); one of {'b', 'g', 'r', 'c',

'm', 'y', 'k', 'w'};

a X11/CSS4 color name;

a name from the xkcd color

survey; prefixed with 'xkcd:' (e.g., 'xkcd:sky blue');

one of

{'tab:blue', 'tab:orange', 'tab:green', 'tab:red', 'tab:purple',

'tab:brown', 'tab:pink', 'tab:gray', 'tab:olive', 'tab:cyan'} which

are the Tableau Colors from the ‘T10’ categorical palette (which is

the default color cycle);

a “CN” color spec, i.e. 'C' followed by a

single digit, which is an index into the default property cycle

(matplotlib.rcParams['axes.prop_cycle']); the indexing occurs at

artist creation time and defaults to black if the cycle does not

include color.

使用这些SO答案:

已转换为重写代码:def rgb_int2tuple(rgbint):

return (rgbint // 256 // 256 % 256, rgbint // 256 % 256, rgbint % 256)

colors = pd.DataFrame({'color1': [15], 'color2': [27], 'color3': [89], 'color4': [123],

'color5': [220], 'color6': [100], 'color7': [123], 'color8': [247], 'color9': [255]})

fig, ax = plt.subplots(3, 3, figsize=(10, 10), sharey='row', sharex='col')

fig.subplots_adjust(hspace=0, wspace=0)

column = 0

for i in range(3):

for j in range(3):

color = colors.iloc[0, column]

color = 255 - color

Blue, Green, Red = rgb_int2tuple(color)

print(f'{i}, {j}: {color}\t{Blue}{Green}{Red}')

ax[i, j].set_facecolor((Blue/255, Green/255, Red/255))

column += 1

但结果是:

81964fd80538cfafe4ecf9042fb8f73c.png

这让我进入第1步,如何让python知道我的0-255刻度是灰色的。在

[编辑]:

我又读了一遍matplotlib.colors文件和发现a string representation of a float value in [0, 1]

inclusive for gray level (e.g., '0.5');

使用这个:

重写我的代码:colors = pd.DataFrame({'color1': [15], 'color2': [27], 'color3': [89], 'color4': [123],

'color5': [220], 'color6': [100], 'color7': [123], 'color8': [247], 'color9': [255]})

fig, ax = plt.subplots(3, 3, figsize=(10, 10), sharey='row', sharex='col')

fig.subplots_adjust(hspace=0, wspace=0)

column = 0

for i in range(3):

for j in range(3):

color = colors.iloc[0, column]

color = 255 - color

color = color / 255

ax[i, j].set_facecolor(str(color))

column += 1

这给了我:

eca26a7de1b5b5c66694392734bd7345.png

但我怀疑,这是最好的解决办法。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值