How to draw line inside a scatter plot

Posted by ruffy on Stack Overflow See other posts from Stack Overflow or by ruffy
Published on 2012-10-19T20:05:53Z Indexed on 2012/10/19 23:01 UTC
Read the original article Hit count: 414

Filed under:
|
|
|

I can't believe that this is so complicated but I tried and googled for a while now.

I just want to analyse my scatter plot with a few graphical features. For starters, I want to add simply a line.

So, I have a few (4) points and like in this plot [1] I want to add a line to it. http://en.wikipedia.org/wiki/File:ROC_space-2.png [1]

Now, this won't work. And frankly, the documentation-examples-gallery combo and content of matplotlib is a bad source for information.

My code is based upon a simple scatter plot from the gallery:

# definitions for the axes
left, width = 0.1, 0.85 #0.65
bottom, height = 0.1, 0.85 #0.65
bottom_h = left_h = left+width+0.02

rect_scatter = [left, bottom, width, height]

# start with a rectangular Figure
fig = plt.figure(1, figsize=(8,8))
axScatter = plt.axes(rect_scatter)

# the scatter plot:
p1 = axScatter.scatter(x[0], y[0], c='blue', s = 70)
p2 = axScatter.scatter(x[1], y[1], c='green', s = 70)
p3 = axScatter.scatter(x[2], y[2], c='red', s = 70)
p4 = axScatter.scatter(x[3], y[3], c='yellow', s = 70)
p5 = axScatter.plot([1,2,3], "r--")

plt.legend([p1, p2, p3, p4, p5], [names[0], names[1], names[2], names[3], "Random guess"], loc = 2)

# now determine nice limits by hand:
binwidth = 0.25
xymax = np.max( [np.max(np.fabs(x)), np.max(np.fabs(y))] )
lim = ( int(xymax/binwidth) + 1) * binwidth

axScatter.set_xlim( (-lim, lim) )
axScatter.set_ylim( (-lim, lim) )

xText = axScatter.set_xlabel('FPR / Specificity')
yText = axScatter.set_ylabel('TPR / Sensitivity')

bins = np.arange(-lim, lim + binwidth, binwidth)
plt.show()

Everything works, except the p5 which is a line.

Now how is this supposed to work? What's good practice here?

© Stack Overflow or respective owner

Related posts about numpy

Related posts about plot