如何从 matplotlib 3.3.1 获取没有填充的标记

Posted

技术标签:

【中文标题】如何从 matplotlib 3.3.1 获取没有填充的标记【英文标题】:How to get markers with no fill, from matplotlib 3.3.1 【发布时间】:2021-01-01 18:22:23 【问题描述】:

matplotlib.pyplot.scatter 有一个facecolors=None 参数,该参数将使数据点标记看起来内部是空心的。我怎样才能获得与pandas.DataFrame.plot.scatter() 相同的外观?

【问题讨论】:

【参考方案1】:

这是选项c(注意它是'None'而不是None,即使是plt中的facecolors):

df.plot.scatter(x='x',y='y', c='None', edgecolors='C1')

输出:

【讨论】:

【参考方案2】:matplotlib 文档中很难找到,但似乎fcec 分别是facecoloredgecolor 的别名。 见matplotlib.patches.Patch pandas 绘图引擎是 matplotlib。 参数为fc。要使用fc,您还应该使用ec。 指定fc='none',而不指定ec,将导致空白标记。 'None''none' 都有效,但 None 无效。
import seaborn as sns  # for data
import matplotlib.pyplot as plt

# load data
penguins = sns.load_dataset("penguins", cache=False)

# set x and y
x, y = penguins["bill_length_mm"], penguins["bill_depth_mm"]

# plot
plt.scatter(x, y, fc='none', ec='g')

使用pandas.DataFrame.plot.scatter
# penguins is a pandas dataframe
penguins[['bill_length_mm', 'bill_depth_mm']].plot.scatter('bill_depth_mm', 'bill_length_mm', ec='g', fc='none')

【讨论】:

以上是关于如何从 matplotlib 3.3.1 获取没有填充的标记的主要内容,如果未能解决你的问题,请参考以下文章

从 matplotlib 中的颜色图中获取单个颜色

从matplotlib中的颜色贴图中获取单个颜色

如何从具有透明背景的 matplotlib 导出绘图?

Matplotlib:从远程服务器获取base64图像[重复]

Tkinter + matplotlib 动画填充内存

如何获取 matplotlib 图形大小