Mark 对象属性#
坐标属性#
x, y, xmin, xmax, ymin, ymax#
坐标属性决定了 Mark 在图上的绘制位置。通常,x
坐标是水平位置,y
坐标是垂直位置。某些 Mark 接受一个跨度(即,min
,max
)参数化用于一个或两个变量。其他 Mark 可能接受 x
和 y
,但也使用 baseline
参数来显示一个跨度。图层的 orient
参数决定了这一点如何运作。
如果一个变量不包含数值数据,它的刻度将应用一个转换,以便数据可以绘制在屏幕上。例如,Nominal
刻度为每个不同的类别分配一个整数索引,而 Temporal
刻度将日期表示为从参考“纪元”开始的天数。
一个 Continuous
刻度也可以在数据值和空间位置之间应用非线性转换。
颜色属性#
color, fillcolor, edgecolor#
所有 Mark 都可以指定 color
,并且许多 Mark 区分 Mark 的“边缘”和“填充”的颜色。通常,简单地使用 color
将同时设置两者,而更具体的属性允许进一步控制。
当颜色属性被映射时,默认调色板取决于刻度类型。名义刻度使用离散的、无序的色调,而连续刻度(包括时间刻度)使用连续的渐变。
注意
默认连续刻度可能会在未来的版本中发生变化,以提高辨识度。
颜色刻度由调色板的名称参数化,例如 'viridis'
、'rocket'
或 'deep'
。一些调色板名称可以包含参数,包括简单的渐变(例如 'dark:blue'
)或 cubehelix 系统(例如 'ch:start=.2,rot=-.4`
)。有关如何做出合适选择的指导,请参阅 颜色调色板教程。
连续刻度也可以由刻度应该在它们之间插值的颜色的元组参数化。当使用名义刻度时,可以提供调色板的名称(如果需要,它将被离散采样)、单个颜色值的列表,或者直接映射数据值到颜色的字典。
可以以 各种格式 指定单个颜色。这些包括对当前颜色循环的索引引用 ('C0'
)、单字母缩写 ('b'
)、灰度值 ('.4'
)、RGB 十六进制代码 ('#4c72b0'
)、X11 颜色名称 ('seagreen'
) 和 XKCD 颜色调查名称 ('purpleish'
)。
alpha, fillalpha, edgealpha#
alpha
属性决定了 Mark 的不透明度。降低 alpha 可以帮助在过度绘制的情况下表示密度。
即使 Mark 不重叠,映射 alpha
属性也很有用,因为它传达了重要性的感觉,并且可以与 color
刻度相结合来表示两个变量。此外,alpha 值较低的颜色看起来不那么饱和,这可以改善更大的填充 Mark(如条形图)的外观。
与 color
一样,一些 Mark 为额外的控制定义了单独的 edgealpha
和 fillalpha
属性。
样式属性#
fill#
fill
属性与边缘和内部有区别的 Mark 相关,并决定内部是否可见。这是一个布尔状态:fill
只能设置为 True
或 False
。
marker#
marker
属性与点 Mark 和一些线 Mark 相关。指定标记的 API 非常灵活,如 matplotlib API 文档中所述:matplotlib.markers
。
可以使用许多简单的字符串代码来指定标记
它们也可以使用 (num_sides, fill_style, angle)
元组以编程方式生成。
有关其他格式(包括 mathtex 字符代码 ('$...$'
) 和顶点数组),请参阅 matplotlib 文档。
标记属性始终使用名义刻度映射;不同的形状之间没有固有的顺序。如果未提供刻度,则绘图将以编程方式生成一组适当大的唯一标记。
虽然这确保了形状在技术上是不同的,但请记住,在大多数情况下,如果在一个绘图中使用超过少数标记,则很难区分这些标记。
注意
默认标记刻度可能会在未来的版本中发生变化,以提高辨识度。
linestyle, edgestyle#
linestyle
属性与线 Mark 相关,而 edgestyle
属性与许多具有“边缘”的 Mark 相关。这两个属性都决定了线以“虚线”的形式表示,以“开”和“关”的线段表示。
可以使用少量简写代码 ('-'
、'--'
、'-.'
和 ':'
) 或以编程方式使用 (on, off, ...)
元组来指定虚线。在元组规范中,单位等于线宽。
尺寸属性#
pointsize#
pointsize
属性与点 Mark 和可以显示单个数据点处的标记的线 Mark 相关。单位对应于 Mark 的直径(以点为单位)。
请注意,虽然参数化对应于直径,但刻度将使用平方根转换进行应用,以便数据值与面积成线性比例。
linewidth#
linewidth
属性与线 Mark 相关,并决定它们的厚度。该值应为非负数,并以点为单位。
edgewidth#
edgewidth
属性类似于 linewidth
,但应用于具有边缘/填充的 Mark,而不是线。它在刻度中使用时也有不同的默认范围。单位是相同的。
stroke#
stroke
属性类似于 edgewidth
,但应用于由其描边而不是填充定义的点 Mark。它也有一个略微不同的默认刻度范围,但其他行为类似。
文本属性#
halign, valign#
halign
和 valign
属性控制文本 Mark 的水平和垂直对齐方式。水平对齐方式的选项是 'left'
、'right'
和 'center'
,而垂直对齐方式的选项是 'top'
、'bottom'
、'center'
、'baseline'
和 'center_baseline'
。
fontsize#
fontsize
属性控制文本 Mark 的大小。该值以点为单位。
offset#
offset
属性控制文本 Mark 与其锚定位置之间的间距。它在不使用 center
对齐方式(即,使用 left/right 或 top/bottom)时应用。该值以点为单位。
其他属性#
text#
text
属性用于设置文本标记的内容。它始终按字面意义使用(不映射),并在必要时转换为字符串。
group#
group
属性很特殊,它不会改变标记的外观,而是定义了额外的独立数据子集,这些子集将由转换操作。