This question already has answers here:
How to do a scatter plot with empty circles in Python?

(6个答案)


2年前关闭。




我正在尝试使用pandas api绘制散点图,其中每个点都是一个空圆,只是具有边框颜色和透明度。我在此代码中尝试了很多调整:
 ax = ddf.plot.scatter(
        x='espvida',
        y='e_anosestudo',
        c=ddf['cor'],
        alpha=.2,
        marker='o');

生成的图看起来像这样:

pandas - Matplotlib:如何使用 Pandas 图API在散点图中绘制空圆?-LMLPHP

如果您仔细观察以下几点:

pandas - Matplotlib:如何使用 Pandas 图API在散点图中绘制空圆?-LMLPHP

您会看到它们具有透明的填充颜色和边框。我希望它只有一个透明的边框。侯我会做吗?

最佳答案

我似乎无法使其与DataFrame.plot.scatter一起使用;它似乎不尊重facecolors='none' kwarg,这可能是因为某些默认的color参数正在传递给plt.scatter

相反,请回到matplotlib,指定facecolors='none'并将edgecolors设置为df中代表颜色的列。

样本数据

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame({'x': np.random.normal(1,1,1000),
                   'y': np.random.normal(1,1,1000),
                   'color': list('rgby')*250})

plt.scatter(df.x.values, df.y.values, facecolors='none', edgecolors=df['color'], alpha=0.2, s=100)
plt.show()

pandas - Matplotlib:如何使用 Pandas 图API在散点图中绘制空圆?-LMLPHP

关于pandas - Matplotlib:如何使用 Pandas 图API在散点图中绘制空圆? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52490041/

10-12 14:37
查看更多