Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 16.11.2019, 20:08   #1
Solver`s
Пользователь
 
Регистрация: 03.12.2016
Сообщений: 11
Вопрос Отображение сетки на графике.

Здравствуйте. Мне нужно создать график функции cos(x), нарисовать сетку графика с шагом 0.5, а деления на осях сделать с шагом 0.2.

Вот код.
Код:
import matplotlib.pyplot as plt
import numpy as np
 
fig = plt.figure()
ax = fig.add_subplot()
 
x_min = -5.0
x_max = 3.0
 
y_min = -2.0
y_max = 2.0
 
x = np.arange(x_min, x_max, 0.10)
y = np.cos(x)
 
plt.xlim(x_min,x_max)
plt.ylim(y_min,y_max)
 
plt.plot(x,y)
 
grid_x_ticks_minor = np.arange(x_min, x_max, 0.20 )
grid_x_ticks_major = np.arange(x_min, x_max, 0.50 )
 
ax.set_xticks(grid_x_ticks_major, minor=True)
ax.set_xticks(grid_x_ticks_minor)
 
grid_y_ticks_minor = np.arange(y_min, y_max, 0.20)
grid_y_ticks_major = np.arange(y_min, y_max, 0.50)
 
ax.set_yticks(grid_y_ticks_major, minor=True)
ax.set_yticks(grid_y_ticks_minor)
 
ax.grid(True, which='minor', alpha=0.5, color = 'b')
 
#ax.grid(True, which="major", linestyle='--')
 
plt.title('График cos(x)')
plt.show()
plt.savefig("Извображение графика.png", bbox_inches='tight')
Проблема в том, что сетка строится с шагом в единицу. Подскажите пожалуйста как это можно исправить.

P.S. На другом форуме мне предложили сделать вот это:
Код:
from matplotlib.ticker import MultipleLocator
 
minorLocator = MultipleLocator(0.5)
ax1.yaxis.set_minor_locator(minorLocator)
ax1.xaxis.set_minor_locator(minorLocator)
ax1.grid(which = 'minor')
Однако это не помогло.
Изображения
Тип файла: png Изображение графика.png (34.5 Кб, 29 просмотров)
Solver`s вне форума Ответить с цитированием
Старый 17.11.2019, 00:13   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,591
По умолчанию

Видимо, какие-то проблемы с версией. У меня этот код работает
sin_py.jpg

Забыл сразу написать - у меня не заработало вообще без нумерации субплота:
Код:
fig = plt.figure()
ax = fig.add_subplot(111)

Последний раз редактировалось Black Fregat; 17.11.2019 в 00:16.
Black Fregat на форуме Ответить с цитированием
Старый 17.11.2019, 01:19   #3
Solver`s
Пользователь
 
Регистрация: 03.12.2016
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Видимо, какие-то проблемы с версией. У меня этот код работает
Вложение 98237

Забыл сразу написать - у меня не заработало вообще без нумерации субплота:
Код:
fig = plt.figure()
ax = fig.add_subplot(111)
Спасибо большое!
Увы, но у меня нет возможности сменить среду разработки. (
Если вас не затруднит, пришлите пожалуйста архив проекта, чтоб я мог показать его преподавателю.
Solver`s вне форума Ответить с цитированием
Старый 17.11.2019, 01:35   #4
Desc
Форумчанин
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 370
По умолчанию

Так а какой тут проект, один файлик с расширением *.py и код в нем из Вашего первого поста.
Корректно сформулировал вопрос - приблизился к решению
Desc вне форума Ответить с цитированием
Старый 17.11.2019, 03:16   #5
Solver`s
Пользователь
 
Регистрация: 03.12.2016
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Desc Посмотреть сообщение
Так а какой тут проект, один файлик с расширением *.py и код в нем из Вашего первого поста.
Видимо я не точно выразился. Я под архивом я подразумеваю все файлы, которые можно получить используя этот код. То есть не только файл с кодом, который я скинул, но и изображение графика, а также скомпилированный файл на который можно нажать и запустить программу не прибегая к использованию среды разработки.

Сомневаюсь, что преподаватель мне поверит на слово, если я скажу ему что проблема в среде разработки. Вот мне и нужны эти файлы в качестве доказательства.
Solver`s вне форума Ответить с цитированием
Старый 17.11.2019, 03:17   #6
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,591
По умолчанию

Цитата:
Сообщение от Solver`s Посмотреть сообщение
чтоб я мог показать его преподавателю
Скажите, а чего вообще нужно добиться? Зачем в коде эта страшная мешанина из major и minor меток?
Black Fregat на форуме Ответить с цитированием
Старый 17.11.2019, 14:28   #7
Solver`s
Пользователь
 
Регистрация: 03.12.2016
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Скажите, а чего вообще нужно добиться? Зачем в коде эта страшная мешанина из major и minor меток?
Ровно то, что я написал в первом сообщении. Построить график функции cos(x), деления на осях поставить с шагом 0.2, сетку отобразить с шагом 0.5.
Такая мешанина меток лишь из-за моей лени. Пожалуй нужно поменять названия переменных на нормальные.
Solver`s вне форума Ответить с цитированием
Старый 17.11.2019, 21:26   #8
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,591
По умолчанию

Код:
import matplotlib.pyplot as plt
import numpy as np
 
fig = plt.figure()
ax = fig.add_subplot(111)
 
x_min = -5.0
x_max = 3.0
 
y_min = -2.0
y_max = 2.0
 
x = np.arange(x_min, x_max, 0.10)
y = np.cos(x)
 
plt.xlim(x_min, x_max)
plt.ylim(y_min, y_max)
 
plt.plot(x, y)
 
grid_x_ticks_minor = np.arange(x_min, x_max, 0.20 )
grid_x_ticks_major = np.arange(x_min, x_max, 0.50 )
 
ax.set_xticks(grid_x_ticks_minor, minor = True)
ax.set_xticks(grid_x_ticks_major)
 
grid_y_ticks_minor = np.arange(y_min, y_max, 0.20)
grid_y_ticks_major = np.arange(y_min, y_max, 0.50)
 
ax.set_yticks(grid_y_ticks_minor, minor = True)
ax.set_yticks(grid_y_ticks_major)
 
#ax.grid(True, which='minor', alpha=0.25, color = 'b')
ax.grid(True, which="major", alpha=0.5, color = 'b')
 
plt.title('График cos(x)')
plt.show()
plt.savefig("Извображение графика.png", bbox_inches='tight')
sin_py2.jpg
Black Fregat на форуме Ответить с цитированием
Старый 17.11.2019, 21:40   #9
Solver`s
Пользователь
 
Регистрация: 03.12.2016
Сообщений: 11
По умолчанию

Спасибо большое, Black Fregat!
Solver`s вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Печать сетки в Word Lolopop12 Microsoft Office Word 0 10.04.2016 12:40
Линии сетки Chuikov Microsoft Office Excel 1 08.07.2013 12:58
Настройка сетки grid Lui Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 0 17.01.2012 09:54
рисование сетки GaLiof Помощь студентам 0 25.12.2009 18:59
DBGrid - Отображение сетки на все поле... DenProx БД в Delphi 4 16.12.2009 17:00