Я только что закончил писать код, чтобы сделать сюжет, используя pylab в Python, и теперь я бы хотел наложить сетку 10x10 на график рассеяния. Как это сделать?
Как рисовать сетку на сюжет в Python?
Ответ 1
Вы хотите использовать 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.grid
и ax.yaxis.grid
могут управлять свойствами линий сетки.
Ответ 2
Чтобы показать линию сетки на каждом тике, добавьте
plt.grid(True)
Например:
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()
Кроме того, вы можете настроить стиль (например, сплошная линия вместо пунктирной линии), добавьте:
plt.rc('grid', linestyle="-", color='black')
Например:
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()
Ответ 3
страница примеров pylab - очень полезный источник. Пример, соответствующий вашему вопросу:
http://matplotlib.sourceforge.net/mpl_examples/pylab_examples/scatter_demo2.py http://matplotlib.sourceforge.net/users/screenshots.html#scatter-demo
Ответ 4
Используя rcParams, вы можете очень легко отобразить сетку следующим образом
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"
Если сетка не отображается даже после изменения этих параметров, используйте
plt.grid(True)
перед звонком
plt.show()
Ответ 5
Вот небольшой пример того, как добавить сетку matplotlib в Gtk3 с Python 2 (не работает в Python 3):
#!/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()