如何从 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
文档中很难找到,但似乎fc
和ec
分别是facecolor
和edgecolor
的别名。
见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 获取没有填充的标记的主要内容,如果未能解决你的问题,请参考以下文章