Python'daki bir arsa üzerine nasıl ızgara çizerim? [kapalı]


171

Python'da pylab kullanarak bir arsa yapmak için kod yazmayı bitirdim ve şimdi dağılım grafiğine 10x10 ızgara yerleştirmek istiyorum. Bunu nasıl yaparım?

Mevcut kodum şudur:

x = numpy.arange(0, 1, 0.05)
y = numpy.power(x, 2)

fig = plt.figure()
ax = fig.gca()
ax.set_xticks(numpy.arange(0, 1, 0.1))
ax.set_yticks(numpy.arange(0, 1., 0.1))
plt.scatter(x, y)
plt.show()

Ve çıktısı:

Izgarasız

Ne istiyorum aşağıdaki çıktı:

Izgara ile

EDIT: Andrey Sobolev'in cevabına dayanan bir örnek eklendi

Yanıtlar:


220

Kullanmak istediğiniz pyplot.grid:

x = numpy.arange(0, 1, 0.05)
y = numpy.power(x, 2)

fig = plt.figure()
ax = fig.gca()
ax.set_xticks(numpy.arange(0, 1, 0.1))
ax.set_yticks(numpy.arange(0, 1., 0.1))
plt.scatter(x, y)
plt.grid()
plt.show()

ax.xaxis.gridve ax.yaxis.gridızgara çizgileri özelliklerini kontrol edebilir.

Resim açıklamasını buraya girin


1
Bunun benim için ızgarasız bir komplo ürettiğine dair bir fikrin var mı?
endolith

Oh bu bir matplotlibrcsorun, düz çizgiler olarak tanımlanmış ızgara tarzı vardı ve artık çalışmıyor?
endolith

1
Aslında işe yaramalı. En azından benim için çalışıyor - ayar mpl.rcParams['grid.linestyle'] = "-"katı ızgara çizgileri ile bir arsa üretiyor. Senin ne grid.linestyle?
Andrey Sobolev

Öyleydi -. Neden çalışmayı bıraktığını bilmiyorum. Bir gün araştıracağım.
endolith

4
Alternatif olarak yapmak daha iyi olabilir ax.scatter(x,y)ve ax.grid(True).
sis düdüğü

58

Her işarette bir kılavuz çizgi göstermek için

plt.grid(True)

Örneğin:

import matplotlib.pyplot as plt

points = [
    (0, 10),
    (10, 20),
    (20, 40),
    (60, 100),
]

x = list(map(lambda x: x[0], points))
y = list(map(lambda x: x[1], points))

plt.scatter(x, y)
plt.grid(True)

plt.show()

resim açıklamasını buraya girin


Ayrıca, stili özelleştirmek isteyebilirsiniz (örneğin kesikli çizgi yerine düz çizgi), şunları ekleyin:

plt.rc('grid', linestyle="-", color='black')

Örneğin:

import matplotlib.pyplot as plt

points = [
    (0, 10),
    (10, 20),
    (20, 40),
    (60, 100),
]

x = list(map(lambda x: x[0], points))
y = list(map(lambda x: x[1], points))

plt.rc('grid', linestyle="-", color='black')
plt.scatter(x, y)
plt.grid(True)

plt.show()

resim açıklamasını buraya girin


17

RcParams kullanarak ızgarayı aşağıdaki gibi kolayca gösterebilirsiniz

plt.rcParams['axes.facecolor'] = 'white'
plt.rcParams['axes.edgecolor'] = 'white'
plt.rcParams['axes.grid'] = True
plt.rcParams['grid.alpha'] = 1
plt.rcParams['grid.color'] = "#cccccc"

Bu parametreler değiştirildikten sonra bile ızgara gösterilmiyorsa,

plt.grid(True)

aramadan önce

plt.show()


1

İşte Python 2 ile Gtk3'te bir matplotlib ızgarasının nasıl ekleneceğine dair küçük bir örnek (Python 3'te çalışmıyor):

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from matplotlib.figure import Figure
from matplotlib.backends.backend_gtk3agg import FigureCanvasGTK3Agg as FigureCanvas

win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit)
win.set_title("Embedding in GTK3")

f = Figure(figsize=(1, 1), dpi=100)
ax = f.add_subplot(111)
ax.grid()

canvas = FigureCanvas(f)
canvas.set_size_request(400, 400)
win.add(canvas)

win.show_all()
Gtk.main()

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.