Python 在matplotlib中可视化非常密集散点图的更好方法

Python 在matplotlib中可视化非常密集散点图的更好方法,python,matplotlib,Python,Matplotlib,我正在使用reddit的讽刺数据集。两个主要列是文本和讽刺标签。我在数据框中又添加了两列,positive\u score和negative\u score。两者分别代表积极情绪和消极情绪的得分。为了可视化分数的分布,我绘制了一个散点图,看起来像这样 由于带有sarcasm\u tag==Yes的文本非常少,因此它隐藏了图形上的许多点。两个标签的单独绘图如下: 有没有更好的方法来可视化分数,从而使两个类都可见?除了解决方案(绘制第二个no点)之外,您还可以使用分数的alpha,为no添加更

我正在使用reddit的讽刺数据集。两个主要列是
文本
讽刺标签
。我在数据框中又添加了两列,
positive\u score
negative\u score
。两者分别代表积极情绪和消极情绪的得分。为了可视化分数的分布,我绘制了一个散点图,看起来像这样

由于带有
sarcasm\u tag==Yes
的文本非常少,因此它隐藏了图形上的许多点。两个标签的单独绘图如下:

有没有更好的方法来可视化分数,从而使两个类都可见?

除了解决方案(绘制第二个no点)之外,您还可以使用分数的
alpha
,为no添加更多颜色

# Sample data
blue_data = np.random.normal(size=(3000, 2))
red_data = np.random.normal(size=(10, 2))

for blue_point in blue_data:
    plt.plot(blue_point[0], blue_point[1], 'ob')
for red_point in red_data:
    plt.plot(red_point[0], red_point[1], 'or')

蓝色为0.3阿尔法,红色为0.8阿尔法

for blue_point in blue_data:
    plt.plot(blue_point[0], blue_point[1], 'ob', alpha=0.3)
for red_point in red_data:
    plt.plot(red_point[0], red_point[1], 'or', alpha=0.8)


最好的!您可以使用alpha,直到找到您要查找的内容。

您可以先绘制“否”点,然后覆盖“是”点。你可能不得不放弃图例,或者手动调整它。这很有效。谢谢,我没有想到要这么做。你也可以尝试使用对数刻度来分隔聚集在较低值周围的数据。我认为最好的方法是放弃散点图,切换到二维直方图。这样,你就可以绘制热图,这将使你比重叠的散乱标记更好地了解密度。你还可以剪切一点x_lim和y_lim,使绘图的边距更小!