0

ランダムなポイントを作成するDjangoプロジェクトを設定しました。これらのランダムなポイントはデータベース(sqlite)に保存されます(管理者のWebサイトでそれらを確認し、値を変更できるため、これは機能します)。スクリプトを書くと、ポイントにアクセスしてプロットに印刷できます。以下のコードを参照してください。

しかし、これらのポイントをマイニングして並べ替えたり、データセットの選択のみをプロットしたりする場合は、問題があるようです。値を読み取ると、それらは接続されなくなり、xを並べ替えるとポイントセットが混同されます。この場合はXの最小値にデータセットを並べ替え、値を並べ替えてセットを印刷する方法はありますか?(ポイントのすべてのx、y、zおよび名前の値をそのまま保持しますか?)(以下の回答を参照してくださいpoint in Point3D.objects.all().order_by('x'):

x=12とx=30の間のxの値が必要な場合はどうすればよいですか?この余分なフィルターを追加するにはどうすればよいですか?

私のコードは次のとおりです: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)

ポイントを生成します。

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()

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))

誰かが私の問題を解決する方法を知っていることを願っています。

どうもありがとう!Tijl

4

1 に答える 1

1

あなたはこれをする必要があります:

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

これにより、「x」フィールドでソートされた順序でポイントが返されます。order_by('-x')と言うと、並べ替え順序が逆になります。

于 2011-03-09T22:16:49.630 に答える