如何在Python中绘制一个网格?

我刚刚写完代码,使用Python中的pylab进行绘图,现在我想将一个10×10的网格叠加到散点图上。 我怎么做?

你想使用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.gridax.yaxis.grid可以控制网格线的属性。

在这里输入图像说明

要在每个滴答声中显示网格线,请添加

 plt.grid(True) 

例如:

 import matplotlib.pyplot as plt points = [ (0, 10), (10, 20), (20, 40), (60, 100), ] x = map(lambda x: x[0], points) y = 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 = map(lambda x: x[0], points) y = map(lambda x: x[1], points) plt.rc('grid', linestyle="-", color='black') plt.scatter(x, y) plt.grid(True) plt.show() 

在这里输入图像说明

使用rcParams你可以非常容易地显示网格,如下所示

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

如果在更改这些参数后仍未显示网格,请使用

 plt.grid(True) 

打电话之前

 plt.show() 

下面是一个小例子,说明如何在Python 2中添加一个matplotlib网格到Gtk3中(不能在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() 

在这里输入图像说明