开发者

Trouble datamining with Django

I've set up a Django project in which i create random points. These random points are stored in a database(sqlite) (i can see them via the admin website and change the values, so this works). If i the write a script i can access the points and print them in a plot. See code below.

But if I then want to mine these points to sort them or only plot a selection of the dataset i seem to have trouble. If i readout the values they are not connected anymore and sorting x would mix up the point set. Is there a way to sort the data set to a minimum value of in this case X and the sort the values and print the set? (keep all x, y, z and name value of the point intact?) (see answer below, point in Point3D.objects.all().order_by('x'):)

If i now want to to have the values of x between x = 12 and x = 30? how can i add this extra filter?

My code is as follows: models.py:

class Point3D(models.Model):
name = models.CharField(max_length = 10)
x = models.DecimalField(max_digits=5, decimal_places=2)
y = models.DecimalField(max_digits=5, decimal_places=2)
z = models.DecimalField(max_digits=5, decimal_places=2)

generate the points:

from books.models import Point3D

def points():
    for i in range(20):
        x = random.randint(0,100)
        y = random.randint(0,100)
        z = random.randint(0,100)

        p = Point3D(name = x , x = x ,y = y,z = z)
#        print 'test'
        p.save()
#    

points()

in views.py:

def ThreeGraphs(request):
    fig = Figure()
    fig.suptitle('2D-punten')
    ax = fig.add_subplot(111)

    for point in Point3D.objects.all():
        print point
        name = int(point.name)
        xs = int(point.x)
        ys = int(point.y)
        zs = int(point.z)
        print (xs, ys, zs)
        ax.plot(xs, ys, 'bo' )

    HttpResponse(mimetype="image/png")
    FigureCanvas(fig)
    fig.savefig('template/images/testing.png')
    picture = "testing.png"
    return render_to_response('Test.html', {'picture': picture}开发者_高级运维, RequestContext(request))

Hope anyone knows how to solve my trouble.

Thanks a lot! Tijl


You need to to this:

    for point in Point3D.objects.all().order_by('x'):

This will return the points in sorted order by the 'x' field. You can say order_by('-x') to reverse the sort order.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜