यह स्वीकार किए जाते हैं जवाब से ऊपर का एक संशोधित संस्करण है। हो सकता है कि किसी को यह उपयोगी
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
import numpy as np
from matplotlib.ticker import FormatStrFormatter
_fontsize_legend = 10
_fontsize = 15
DP = 2
fig = plt.figure(figsize=(12, 12), dpi=100, facecolor='w', edgecolor='k')
##fig = plt.figure()
fig.canvas.draw()
ax = plt.gca()
# set up axis
ax.spines['left'].set_position('zero')
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_position('zero')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
# draw curve
x = np.arange(-2.5,2.5,0.01)
line, = ax.plot(x, x**2)
#set bounds
ax.set_ybound(-1,7)
## THIS IS THE EDIT
ax.xaxis.set_major_locator(MultipleLocator(1/4))
ax.yaxis.set_major_locator(MultipleLocator(1/4))
ax.xaxis.grid(True,'major',linewidth=2/DP,linestyle='-',color='#d7d7d7',zorder=0)
ax.yaxis.grid(True,'major',linewidth=2/DP,linestyle='-',color='#d7d7d7')
ax.xaxis.set_minor_locator(MultipleLocator((1/4)/5))
ax.yaxis.set_minor_locator(MultipleLocator((1/4)/5))
ax.xaxis.grid(True,'minor',linewidth=0.5/DP,linestyle='-',color='#d7d7d7')
ax.yaxis.grid(True,'minor',linewidth=0.5/DP,linestyle='-',color='#d7d7d7')
ax.set_axisbelow(True)
ax.set_aspect('equal')
##ax.axhline(linewidth=0)
##ax.axvline(linewidth=0)
ax.xaxis.set_major_formatter(FormatStrFormatter('%i'))
xticks = ax.xaxis.get_major_ticks()
for i,l in enumerate(xticks):
if not (i - 1) % 4 == 0:
xticks[i].label1.set_visible(False)
else:
xticks[i].label1.set_fontsize(_fontsize)
ax.yaxis.set_major_formatter(FormatStrFormatter('%i'))
yticks = ax.yaxis.get_major_ticks()
for i,l in enumerate(yticks):
if not (i - 1) % 4 == 0:
yticks[i].label1.set_visible(False)
else:
yticks[i].label1.set_fontsize(_fontsize)
figManager = plt.get_current_fig_manager()
figManager.window.showMaximized()
plt.show()
This is how this sample looks [picture]
शानदार मिलेगा !!! ऐसा लगता है कि मैं क्या कर रहा था। बहुत बहुत शुक्रिया! – Geddes
मेरा अंतिम प्रश्न होगा: क्या तीन अलग-अलग ग्रिड लाइन शैलियों को प्राप्त करने का कोई तरीका है? मैं * 0.2 के लिए एक शैली चाहता हूं, दूसरा * 1 के लिए और फिर 2 * के लिए दूसरा (ग्राफ-पेपर में)। यह मुश्किल लगता है क्योंकि matplotlib केवल प्रमुख/मामूली ticks लगाया प्रतीत होता है। एक बार फिर धन्यवाद! – Geddes
@Geddes, उपरोक्त संपादन देखें। मुझे लगता है कि सबसे आसान तरीका सिर्फ अपनी स्थिति के आधार पर ग्रिडलाइन को समायोजित करना होगा (यानी 2 के गुणकों पर)। – Mark