注解
Click here 下载完整的示例代码
指定颜色¶
matplotlib识别以下格式以指定颜色:
- 以闭合间隔表示的浮点值的RGB或RGBA(红、绿、蓝、α)元组
[0, 1]
(例如,(0.1, 0.2, 0.5)
或(0.1, 0.2, 0.5, 0.3)
; - 十六进制rgb或rgb a字符串(例如,
'#0f0f0f'
或'#0f0f0f80'
;不区分大小写); - 一种简写的十六进制RGB或RGBA字符串,相当于通过复制每个字符获得的十六进制RGB或RGBA字符串(例如。,
'#abc'
,相当于'#aabbcc'
或'#abcd'
,相当于'#aabbccdd'
;不区分大小写); - 浮点值的字符串表示形式
[0, 1]
包括灰级(例如,'0.5'
; - 其中一个角色
{{'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'}}
,是蓝色、绿色、红色、青色、品红、黄色、黑色和白色的简写符号。注意颜色'g', 'c', 'm', 'y'
与X11/CSS4颜色不一致。他们选择了特殊的色调,以便在典型背景下更好地看到彩色线条。 - X11/CSS4颜色名称(不区分大小写);
- 名字来自 xkcd color survey 前缀
'xkcd:'
(例如,'xkcd:sky blue'
;不区分大小写); - “T10”类别调色板中的一种Tableau颜色(默认颜色循环):
{{'tab:blue', 'tab:orange', 'tab:green', 'tab:red', 'tab:purple', 'tab:brown', 'tab:pink', 'tab:gray', 'tab:olive', 'tab:cyan'}}
(不区分大小写); - “CN”颜色规格,即
'C'
后跟一个数字,它是默认属性循环的索引 (rcParams["axes.prop_cycle"]
(default:cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])
) );索引将在渲染时发生,如果循环不包括颜色,则默认为黑色。
“红”、“绿”和“蓝”是这些颜色的强度,它们的组合跨越整个色彩空间。
“alpha”的行为取决于 zorder
艺术家的作品。较高的 zorder
艺术家被画在下层艺术家的上面,“阿尔法”决定下层艺术家是否被上层艺术家所覆盖。如果像素的旧RGB是 RGBold
被添加的艺术家像素的RGB是 RGBnew
用alpha alpha
,则像素的RGB更新为: RGB = RGBOld * (1 - Alpha) + RGBnew * Alpha
. alpha为1表示旧颜色完全被新艺术家覆盖,alpha为0表示艺术家的像素是透明的。
有关matplotlib中颜色的详细信息,请参见
- 这个 色彩演示 例子;
- 这个
matplotlib.colors
应用程序编程接口; - 这个 命名颜色列表 例子。
“CN”颜色选择¶
“cn”颜色在艺术家创建后立即转换为rgba。例如,
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
th = np.linspace(0, 2*np.pi, 128)
def demo(sty):
mpl.style.use(sty)
fig, ax = plt.subplots(figsize=(3, 3))
ax.set_title('style: {!r}'.format(sty), color='C0')
ax.plot(th, np.cos(th), 'C1', label='C1')
ax.plot(th, np.sin(th), 'C2', label='C2')
ax.legend()
demo('default')
demo('seaborn')
将使用标题的第一种颜色,然后使用每个样式的第二种和第三种颜色打印 rcParams["axes.prop_cycle"]
(default: cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])
) .
XKCD V X11/CSS4¶
xkcd的颜色来源于网络漫画xkcd进行的用户调查。 Details of the survey are available on the xkcd blog .
在CSS颜色列表中的148种颜色中,x11/css4名称与xkcd名称之间存在95种名称冲突,其中3种名称的十六进制值不同。例如 'blue'
地图到 '#0000FF'
在哪里 'xkcd:blue'
地图到 '#0343DF'
. 由于这些名称冲突,所有XKCD颜色 'xkcd:'
前缀。正如博客文章中提到的,虽然基于这样的调查重新定义x11/css4名称可能很有趣,但我们不会单方面这样做。
名称冲突显示在下表中;十六进制值一致的颜色名称显示为粗体。
import matplotlib._color_data as mcd
import matplotlib.patches as mpatch
overlap = {name for name in mcd.CSS4_COLORS
if "xkcd:" + name in mcd.XKCD_COLORS}
fig = plt.figure(figsize=[4.8, 16])
ax = fig.add_axes([0, 0, 1, 1])
for j, n in enumerate(sorted(overlap, reverse=True)):
weight = None
cn = mcd.CSS4_COLORS[n]
xkcd = mcd.XKCD_COLORS["xkcd:" + n].upper()
if cn == xkcd:
weight = 'bold'
r1 = mpatch.Rectangle((0, j), 1, 1, color=cn)
r2 = mpatch.Rectangle((1, j), 1, 1, color=xkcd)
txt = ax.text(2, j+.5, ' ' + n, va='center', fontsize=10,
weight=weight)
ax.add_patch(r1)
ax.add_patch(r2)
ax.axhline(j, color='k')
ax.text(.5, j + 1.5, 'X11', ha='center', va='center')
ax.text(1.5, j + 1.5, 'xkcd', ha='center', va='center')
ax.set_xlim(0, 3)
ax.set_ylim(0, j + 2)
ax.axis('off')

出:
(0.0, 3.0, 0.0, 50.0)
脚本的总运行时间: (0分1.294秒)
关键词:matplotlib代码示例,codex,python plot,pyplot Gallery generated by Sphinx-Gallery