Pythonでプロットにグリッドを描画するにはどうすればよいですか?[閉まっている]


170

Pythonでpylabを使用してプロットを作成するコードを書き終えたところで、10x10のグリッドを散布図に重ね合わせたいと思います。それ、どうやったら出来るの?

私の現在のコードは次のとおりです:

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

そしてその出力は:

グリッドなし

私が欲しいのは次の出力です:

グリッド付き

編集:アンドレイソボレフの答えに基づいて、例を追加しました

回答:


219

あなたが使いたい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グリッド線のプロパティを制御することができます。

ここに画像の説明を入力してください


1
これがグリッドのないプロットを生成する理由は何ですか?
内部石2015

ああ、それはmatplotlibrc問題だと思います。グリッドスタイルを実線として定義しましたが、それはもう機能しませんか?
内部石2015

1
実際に動作するはずです。少なくとも、それは私にとってmpl.rcParams['grid.linestyle'] = "-"はうまくいきます-設定は、実線のグリッドを持つプロットを生成します。あなたは何grid.linestyleですか?
Andrey Sobolev

だった-。なぜ機能しなくなったのかわかりません。いつか調べます。
内部石2015

4
またそれが行うには良いかもしれないax.scatter(x,y)ax.grid(True)
foghorn、2015

57

すべての目盛りにグリッド線を表示するには、以下を追加します

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

ここに画像の説明を入力してください


17

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


1

Python 2を使用してGtk3にmatplotlibグリッドを追加する小さな例を次に示します(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()

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.