matplotlib - 在同一图中绘制带有标签的两个数据集

时间:2014-02-25 03:57:06

标签: python matplotlib

我想使用两种不同的颜色在同一matplotlib图中绘制两个数据点类别。

以下代码使用标签绘制一类数据点。

import matplotlib
import pylab as plt

x = [-0.39615277,-0.31426806,-0.17823952,-0.43836375,-0.26388058,-0.52400482, -0.26388058, -0.32637322]
y = [0.28005737,0.44953214, 0.26899154, 0.36850831, -0.34592143, -0.24640466, -0.34592143, -0.45966878]
n=['romeo','juliet','happy','dagger','live','die','free','hampshier']

fig, ax = plt.subplots()
ax.scatter(x, y)

for i, txt in enumerate(n):
    ax.annotate(txt, (x[i],y[i]))

matplotlib.pyplot.show()

但我有以下数据集,必须在同一图中用不同的颜色绘制。

x1 = [-0.31086574,-0.40733041,-0.59446137,-0.60304575,-0.1428143]
y1 = [0.36293322,0.54074246, 0.20005441, -0.6953914, -0.22866156]
n1=['d1','d2','d3','d4','d5']

如何实现这一目标?

enter image description here

1 个答案:

答案 0 :(得分:1)

注意:此帖子已经过编辑,以删除我的第一个无用的答案,并将其替换为正确的答案。新来的,抱歉。 :)

绘制两个散点图将在同一图上绘制它们。那么你有ax.scatter(x,y)的位置,然后直接放置第二个散点图ax.scatter(x1,y1,c='red'),它将在同一个数字上。稍后您可以使用

注释第二组点

for i, txt in enumerate(n1): ax.annotate(txt, (x1[i],y1[i]))