Matplotlib中不同绘图方法的标记尺寸参数为何存在差异?
为什么Matplotlib要区分
s和markersize参数? 主要是两个原因:
- 功能场景不一样
scatter()是专门画散点图的,经常需要给每个点单独设大小(比如气泡图,用点的大小表示额外的数据维度)。所以s参数可以传数组,给每个标记分配不同的尺寸;而plot()这类方法主打画线+标记,标记尺寸一般是统一的,markersize只能传单个数值。
- 视觉感知更合理
s的单位是点的平方(points²),也就是说标记的面积和s的数值是线性相关的。人眼对面积的感知比直径准得多,用面积对应数据值(比如气泡图的数值),可视化结果更符合直觉;而markersize控制的是标记的直径(单位是点),适合只需要统一大小标记的场景。
各绘图方法的标记尺寸参数汇总
matplotlib.pyplot.scatter():用s参数,支持单个数值或数组,单位为points²matplotlib.pyplot.plot():用markersize(可以简写为ms),只能传单个数值,单位是点(标记的直径)matplotlib.pyplot.errorbar():用markersize(或ms),控制误差棒上标记的尺寸matplotlib.pyplot.stem():可以通过markersize参数控制标记大小,也能在markerfmt里设置matplotlib.pyplot.bar():如果给柱状图加了顶部标记,用markersize控制标记尺寸
内容的提问来源于stack exchange,提问作者Slavensky
相关产品推荐
相关产品推荐

