मैं पायथन में एक भूखंड पर एक ग्रिड कैसे बना सकता हूं? [बन्द है]


170

मैंने पायथन में पाइलैब का उपयोग करके एक प्लॉट बनाने के लिए कोड लिखना समाप्त कर दिया है और अब मैं स्कैटर प्लॉट पर 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()

और इसका आउटपुट है:

बिना ग्रिड के

मैं निम्नलिखित आउटपुट क्या चाहूंगा:

ग्रिड के साथ

EDIT: एंड्री सोबॉलेव के जवाब के आधार पर एक जोड़ा गया

जवाबों:


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
किसी भी विचार क्यों यह मेरे लिए कोई ग्रिड के साथ एक भूखंड का उत्पादन कर रहा है?
एंडोलिथ

ओह, मुझे लगता है कि यह एक matplotlibrcमुद्दा है, मेरे पास ग्रिड शैली को ठोस लाइनों के रूप में परिभाषित किया गया है और यह अब काम नहीं करता है?
एंडोलिथ

1
वास्तव में यह काम करना चाहिए। कम से कम, यह मेरे लिए काम करता है - सेटिंग mpl.rcParams['grid.linestyle'] = "-"ठोस ग्रिड लाइनों के साथ एक भूखंड का उत्पादन करता है। आपका क्या है grid.linestyle?
एंड्री सोबोलेव

यह था -। मुझे नहीं पता कि इसने काम करना क्यों बंद कर दिया। मैं किसी दिन जाँच करूँगा।
एंडोलिथ

4
वैकल्पिक रूप से यह करना बेहतर होगा ax.scatter(x,y)और ax.grid(True)
फोगहॉर्न

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

यहाँ एक छोटा सा उदाहरण है कि पायथन 2 के साथ Gtk3 में एक matplotlib ग्रिड कैसे जोड़ा जाए (पायथन 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()

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.