0

I'm using matplotlib at the moment to try and visualise some data I am working on. I'm trying to plot around 6500 points and the line y = x on the same graph but am having some trouble in doing so. I can only seem to get the points to render and not the line itself. I know matplotlib doesn't plot equations as such rather just a set of points so I'm trying to use and identical set of points for x and y co-ordinates to produce the line.

The following is my code

from matplotlib import pyplot
import numpy
from pymongo import *

class Store(object):
    """docstring for Store"""
    def __init__(self):
        super(Store, self).__init__()
        c = Connection()
        ucd = c.ucd
        self.tweets = ucd.tweets

    def fetch(self):
        x = []
        y = []
        for t in self.tweets.find():
            x.append(t['positive'])
            y.append(t['negative'])
        return [x,y]

if __name__ == '__main__':
    c = Store()
    array = c.fetch()
    t = numpy.arange(0., 0.03, 1)

    pyplot.plot(array[0], array[1], 'ro', t, t, 'b--')
    pyplot.show()

Any suggestions would be appreciated,

Patrick

1 Answer 1

3

Correct me if I'm wrong (I'm not a pro at matplotlib), but 't' will simply get the value [0.].

t = numpy.arange(0.,0.03,1)

That means start at 0 and go to 0.03 (not inclusive) with a step size of 1. Resulting in an array containing just 0.

In that case you are simply plotting one point. It takes two to make a line.

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks so much. I just knew it was me doing something stupid. Works beautifully.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.