Где взять нормальный топор для тайги? | Страница 7 | Амурский Берег
Multik
Почетный Форумчанин
#121
Катран сказал(а):
Я почему-то тоже так подумал. Зачем облегчать инструмент, который должен быть тяжелым? Если надо полегче, то надо просто взять размером поменьше.
Может я чего не понимаю в высших топоринных материях, но я всегда думал так.Нажмите, чтобы раскрыть…
Да все ты понимаешь, достаточно вспомнить русские поговорки : хороший понт-дороже денег дурная голова рукам покоя не дает
BigRiver
Почетный Форумчанин
#122
Катран сказал(а):
Можешь объяснить — зачем?
Взял и испортил хорошую вещь.Нажмите, чтобы раскрыть…
От жешь. По кругу
А зачем делают ножи от 45 мм клина до 200 мм и выше?
И весом от 50 грамм до 350 гр и выше?
У них свойства одинаковые, или это все понты и нужен один нож на все времена с клином 100 мм, весом в 110 гр.?
А зачем нужен шлифтик, рубанок, полуфуганок и фуганок?
Универсального инструмента для рубки нет. Это не очевидно?
Последнее редактирование:
Катран
Почетный Форумчанин
#123
BigRiver сказал(а):
От жешь. По кругу
А зачем делают ножи от 45 мм клина до 200 мм и выше?
И весом от 50 грамм до 350 гр и выше?
У них свойства одинаковые, или это все понты и нужен один нож на все времена с клином 100 мм, весом в 110 гр.?
А зачем нужен шлифтик, рубанок, полуфуганок и фуганок?
Универсального инструмента для рубки нет. Это не очевидно?Нажмите, чтобы раскрыть…
Не, не очевидно. Все перечисленное для разных функций. Какую функцию несет выборка на топоре?
Сергей Хребтов
Администратор Портала
#124
Выборка на топоре несет функцию уменьшенного веса, им в бою махать удобно, бошки рубить, а в лесу потяжелее нужно.
Владимир
Почетный Форумчанин
#125
Гуляка сказал(а):
лесу потяжелее нужно.
Нажмите, чтобы раскрыть…
Серега, ты когда-нибудь весь день махал топором? Здоровья у всех по разному, мало кому комфортно тяжелым топором работать. Дрова колоть — да, по тяжелее нужен.
Сергей Хребтов
Администратор Портала
#126
махал, Володь, дрова колол целыми днями в стройотряде, у родни в деревне частенько, но и здоровья было раньше много.
На сегодняшний день меня полностью Фишкарс устравивает.
С тобой , Володь, согласен, что топор несет разные функции, не только дрова рубить, плотнику полегче нужен, подхорохорить чего — нибудь.
Владимир
Почетный Форумчанин
#127
Гуляка сказал(а):
махал, Володь, дрова колол целыми днями в стройотряде, у родни в деревне частенько, но и здоровья было раньше много.
На сегодняшний день меня полностью Фишкарс устравивает.Нажмите, чтобы раскрыть…
Не понял ты меня. Когда колишь — задействовано все тело (не так утомительно), когда плотничаешь — только руки, вот тут и нужен легкий топор.
В тайге меня Фишкарс тоже устраивает, но мы и без бензопилы не ездим..
Сергей Хребтов
Администратор Портала
#128
пока дополнял — ты ответил. Тоже часто вожу пилу, но часто ею не пользуюсь, обхожусь топором, дров много и так.
BigRiver
Почетный Форумчанин
#129
Катран сказал(а):
. .. Какую функцию несет выборка на топоре?
Нажмите, чтобы раскрыть…
У каждого свои мотивы.
Я облегчал топор, который был не предназначен для рубки-колки дров. Хотя — могет. Особенно если чурочки пилить на сантимов 5 короче от стандарта.
Для меня — это топор-помощник для мелких работ. Там, где важнее управляемость, чем инертность для рубки.
Легче — значит управляемость, контролируемость выше.
сыч
Почетный Форумчанин
#130
сыч сказал(а):
Посмотрел топоры переделанные как в некоторых постах выше. Задумался, а не попробовать переделать свой. Зима длинная, время есть.
Нажмите, чтобы раскрыть…
Multik сказал(а):
Да все ты понимаешь, достаточно вспомнить русские поговорки : хороший понт-дороже денег дурная голова рукам покоя не дает
Нажмите, чтобы раскрыть…
Лешь, почти прав. Сейчас есть время свободное, почему бы не вспомнить как напильник держать. Пользуюсь обычными топорами которым по несколько десятков лет, вот один не сильно старый, 85 года решил тюнингнуть . Потом постараюсь написать, понравилось или нет в использовании.
А на счет понтов, то понт — это купить в тайгу топор за пятнашку и боятся его потерять.
SanSay
Почетный Форумчанин
#131
Гуляка сказал(а):
им в бою махать удобно, бошки рубить, а в лесу потяжелее нужно.
Нажмите, чтобы раскрыть…
так ведь неизвестно, на какую «тропу» Гена собрался!
———————
сыч сказал(а):
Начал выбирать металл из заготовки…
Нажмите, чтобы раскрыть…
было б неплохо черкануть в «самоделках» — КАК; лёгкое описание процесса
сыч
Почетный Форумчанин
#132
SanSay сказал(а):
было б неплохо черкануть в «самоделках» — КАК; лёгкое описание процесса
Нажмите, чтобы раскрыть. ..
Да особо то и писать нечего. Разметил маркером, глядя но фото в этой ветке. Пошел в нашу мех мастерскую, зажал в тиски, УШМ с тонким диском срезал все лишнее, охлаждая металл водой. Полукруг вырезал клиньями, потихоньку вырезая сегменты. Потом шлифовочным диском загладил. Ну и немного на наждаке тиранул.
Вот теперь размышляю, что дальше…..
«Кольт», мушкет и «смерть председателя» Любители оружия создают новые виды стрелкового спорта : Оружие: Силовые структуры: Lenta.ru
Ковбойские дуэли, стрельба из мушкетов, состязания партизан и махновцев — стрелковый спорт вышел за рамки строгих олимпийских дисциплин, породив новые, с элементами игры и шоу. Результаты, которые показывают участники шуточных состязаний, порой поражают воображение и вызывают серьезные споры.
Пистолет и плащ
В начале ХХ века у состоятельных господ в Европе и в США вновь вошли в моду дуэли на пистолетах. Правда, бескровные — стреляли не свинцовыми пулями, а восковыми. Новый вид спорта так и назывался — дуэльная стрельба. Стрелков защищали длинные плащи из плотной материи и стальные маски с толстым стеклом. Оружием служили капсюльные дуэльные пистолеты (реже револьверы) со специальным щитком, напоминающим гарду шпаги. Дуэльная стрельба приобрела такую популярность, что ее даже хотели включить в программу Олимпийских игр 1908 года. Не включили — видимо, организаторы сочли, что это не слишком-то соотносится с лозунгом «О спорт, ты — мир».
Альтернативные виды стрелкового спорта возникают постоянно — благодаря любителям того или иного вида оружия, стрелковых техник и т.п. Некоторые со временем развиваются в серьезные спортивные направления, например практическая стрельба (IPSC). Другие остаются в формате фестивалей и шоу. Главный тренд таких состязаний — исторический уклон. Так, стрелки многих стран, в том числе и России, соревнуются в стрельбе из дульнозарядных ружей и мушкетов. В Канаде проводится ежегодный турнир по стрельбе из старинного оружия Buffalo Shoot. Участники, облаченные в охотничьи костюмы XVIII-XIX веков, палят из кремневых ружей и пистолетов, пешими и верхом на лошадях, собранных из старых бочек, пружин и досок. А еще метают ножи, топоры и дротики.
…а полковник Кольт сделал их равными
В середине прошлого века голливудские вестерны породили в США моду на Дикий Запад. Частью этого поветрия стала новая стрелковая дисциплина Cowboy Action Shooting (CAS) — ковбойская стрельба или Cowboy 3-Gun — ковбойское троеборье. Это своеобразный симбиоз стрелкового спорта, исторической реконструкции и костюмированного шоу в стиле Дикого Запада (период с 1861 по 1890 год, его еще называют Американский Старый Запад).
Соревнования по ковбойской стрельбе
Фото: Jebb Harris / Zumapress / Globallookpress.com
Стрелки состязаются в трех видах оружия — револьвер, дробовик и винтовка. Причем и оружие, и боеприпасы должны соответствовать заявленному историческому периоду, вернее, тому, как его видели голливудские режиссеры. Чаще всего применяются реплики револьверов «Кольт» конца XIX века или современные Ruger Vaquero калибра 45 Colt, сделанные под старину. Непременное условие — револьвер должен быть одинарного действия, то есть перед каждым выстрелом курок необходимо взвести. Еще используют винтовки рычажного действия (перезаряжаются движением спусковой скобы), аналоги знаменитого «Винчестера» модели 1873, «винтовки, завоевавшей Запад». И, конечно, двустволки или помповые дробовики ретромоделей вроде «Винчестера» 1897 года. Правила соревнований требуют, чтобы стрелок каждый раз заряжал в ружье не более двух патронов — это уравнивает шансы двустволок и помповых дробовиков.
Костюмы также соответствуют моде Дикого Запада или Викторианской эпохи. Иногда требуется полная историческая достоверность, а иногда достаточно одежды в духе времени.
Участник Cowboy Mounted Shooting с репликой винтовки Winchester
Фото: Greg Sorber / Zumapress / Globallookpress.com
Еще одно направление ковбойской стрельбы — Cowboy Mounted Shooting, стрельба верхом. Это развлечение придумали в конце ХХ века. На полном скаку надо поразить до 10 мишеней — воздушных шариков, закрепленных на шестах. Правда, здесь в целях безопасности используют холостые патроны — энергии пороховых газов и несгоревших частиц пороха хватает, чтобы хлопнуть шарик на расстоянии в несколько метров. Как правило, стреляют из револьвера, но бывает, что прямо на скаку его нужно сменить на винтовку или ружье.
Пять выстрелов за доли секунды
Высший пилотаж в ковбойском стиле — Fast Draw, быстрое выхватывание или быстрый выстрел. Название говорит за себя: стрелок должен выхватить из кобуры револьвер, отдельным движением, как в кино, взвести курок и поразить цель выстрелом от бедра. Говорят, будто основатель Fast Draw, знаменитый стрелок Ди Вулем (Dee Woolem) проделывал этот трюк за 0,12 секунды. Правда, документальных подтверждений этому нет. Лучшие современные стрелки показывают результаты менее 0,25 секунды.
В 50 годах ХХ века Ди Вулем работал шоу-стрелком в одном из американских парков развлечений. Там предлагался ретроаттракцион: прокатиться в старинном поезде и поучаствовать в шоу «ограбление почты на Диком Западе». А Ди Вулем удивлял зрителей искусством владения ковбойским «Кольтом» 45 калибра — стрелял в подброшенную монету, поражал несколько мишеней за одну секунду и т.п. Со временем он превратил свои трюки в новый вид спорта.
Оружие Fast Draw — реплики старого «Кольта». Порой правила позволяют стрелкам дорабатывать свое оружие, чтобы превратить его в спортивный снаряд — установить более комфортный спусковой механизм, стальные стволы заменить алюминиевыми. Это возможно потому, что стреляют спортсмены холостыми патронами либо пулями из специального воска — он не плавится, проходя через ствол. Холостыми бьют по воздушным шарикам в стальной рамке, а восковыми пулями — по стальным мишеням в форме прямоугольника, диска или человеческого силуэта. Дистанция до цели — от двух до семи метров.
Порядок таков: стрелки стоят наготове перед мишенью, рука у рукояти револьвера, но не касается ее. По световому сигналу, «ковбои» выхватывают оружие, взводят курок свободной рукой и стреляют. Специальные таймеры фиксируют время между сигналом и выстрелом/попаданием в цель с точностью до сотых долей секунды.
Дуэль современных ковбоев
Фото: Andy Clark / Reuters
Конкуренция в Fast Draw весьма высока, а достижения спортсменов порой вызывают горячие дискуссии. Один из самых известных стрелков Боб Манден (Bob Munden) в документальном сериале телеканала History «Сверхлюди Стэна Ли» (Stan Lee’s Superhumans) выхватывает револьвер и двумя выстрелами, каждый раз взводя курок, поражает два шарика на расстоянии двух метров друг от друга. Если верить авторам фильма, время между двумя выстрелами — сотые доли секунды, и звучат они как один. В 1980 году Манден был внесен в Книгу рекордов Гиннесса как «самый быстрый стрелок в мире». Однако впоследствии запись убрали — рекордный выстрел Мандена в 0,15 секунды не имеет достоверного подтверждения. В мире Fast Draw у Мандена много критиков, считающих его рекорды сомнительными.
Достижения других стрелков впечатляют не меньше: 18-кратный чемпион Запада Дарби Ховард (Darby Howard) может выхватить револьвер и от бедра поразить пять мишеней менее чем за секунду, взводя курок перед каждым выстрелом.
Махновцы в городе
А это уже происходит в России: матрос Красного космофлота в мешковатом костюме-скафандре подбивает британский танк Mark I из траншейной пушки Розенберга, затем неуклюже бежит, хватает футуристического вида ружье и ведет огонь через смотровые щели «бронепоезда». Так выглядит упражнение на матче по «Махновско-кулацкой и партизанской стрельбе» (МКПС). Это отечественная версия развлекательной стрельбы, которую можно считать нашим ответом Cowboy Action Shooting. Кстати, аббревиатура МКПС еще расшифровывается как «Международная конфедерация практической стрельбы» (IPSC), что намекает на спортивные предпочтения организаторов.
В 2006 году группа московских стрелков-энтузиастов организовала и провела первый в стране костюмированный матч с историческим уклоном — его назвали партизанским. Эксперимент оказался удачным, и матчи стали регулярными. В отечественной версии «исторической стрельбы» обыгрывается период с начала до середины ХХ века. Отсюда многочисленные образы: революционные матросы, кулаки, белые офицеры, красные комиссары, махновцы, партизаны и солдаты двух мировых войн, а еще гангстеры и ковбои. Шуточный характер матчей нередко подчеркивает гротескная атмосфера развесистой клюквы с лаптями, ушанками, репринтами рекламы и плакатов тех лет.
Стрелок и судья на матче по «Махновско-кулацкой и партизанской стрельбе»
Фото: страница Ирины Мареевой в Facebook
Оружие подбирается сообразно эпохе, но с учетом особенностей российского законодательства и оружейного рынка. В основном, это двустволки — они есть почти у каждого стрелка-спортсмена, а еще «фроловки» (гладкоствольные ружья, переделанные из винтовок Мосина), короткие ТОЗ-106 — за внешнее сходство с обрезом, получившие название «смерть председателя», помповые ружья архаичной конструкции. Причем правило ковбойской стрельбы — заряжать в дробовик не более двух патронов — сохраняется и в России.
С пистолетами сложнее. «Владеть пистолетами гражданам нельзя, поэтому пользуемся тем, что можно арендовать в клубах, на базе которых проводятся соревнования, — поясняет один из организаторов партизанских матчей Юрий Полтавец. — Выбор для наших задач невелик, но ситуация год от года улучшается. Если используются револьверы, то стрельба из них ведется только после предварительного взведения курка. Никакого самовзвода, как и в «ковбойской стрельбе»».
.
Ограничения на выбор оружия накладывают и возможности арендуемых стрельбищ. Далеко не везде можно использовать оружие винтовочных калибров, поэтому трехлинейки только в проектах. А вот нарезные карабины под пистолетный патрон — «огражданенные» ППШ, современные реплики «Винчестеров» (как правило, бразильские Rossi) присутствуют.
Проблемы с выбором оружия компенсируются фантазией дизайнеров упражнений. Вот описание одного из них, называется «С гранатой в руках». Перед началом упражнения стрелку дают в руку «гранату» и выдергивают чеку. По стартовому сигналу он поражает несколько мишеней из револьвера, кидает гранату в сарай, затем меняет револьвер на «Винчестер» стреляет еще в три мишени — одна из них включает «канатную дорогу», которая подвозит стрелку котелок с дробовыми патронами. Из дробовика нужно поразить мишени в «зачищенном» гранатой сарае.
Поскольку авторы партизанских матчей — практические стрелки, то мишени, основные правила и требования безопасности заимствованы из этого вида спорта.
Оси
Вы можете добавлять или изменять оси в графике. Примеры на этой странице включают добавление осей к изображению, а также добавление и изменение свойств оси на трехмерном контурном изображении.
Добавление осей к изображению
Оси на изображении помогают проиллюстрировать размеры (количество пикселей) в каждом направлении, как показано в следующем примере:
; Определите данные, прочитав изображение в IDL,
; создание переменнойaero_view для хранения данных.
air_view = FILEPATH('elev_t.jpg', $
SUBDIR=['примеры','данные'])
; Отобразите изображение.
им = ИЗОБРАЖЕНИЕ (вид с высоты птичьего полета, РАЗМЕРЫ = [400, 400], ПОЛЯ = 0,2)
; Добавьте оси X и Y. MINOR=0)
Добавить оси к 3D-контуру
В примере показана цифровая модель рельефа (ЦМР), взятая из гор Санта-Моники в Калифорнии. Этот трехмерный пример иллюстрирует, как добавить ось Z к графике после ее создания.
; Определите данные.
файл = файл_который('elevbin.dat')
dem = read_binary(файл, data_dims=[64, 64])
; Отобразите данные.
c = CONTOUR(dem, $
RGB_TABLE=5, $
/FILL, $
PLANAR=0, $
AXIS_STYLE=0)
9001 3
; Создайте ось Z с помощью функции AXIS.
z = ОСЬ('Z', РАСПОЛОЖЕНИЕ=['слева', 'снизу'])
; Измените свойства оси.
z.MINOR = 0
z.TICKLEN = 0,10
z.COLOR = «красный»
z.TITLE = «Отметка (м)»
Добавить пользовательские оси с заданным пользователем диапазоном 90 005
Оси также могут быть добавлены в произвольных местах и с пользовательскими коэффициентами смещения и масштабирования. Например:
; Определите изображение для отображения.
файл = ПУТЬ К ФАЙЛУ('marsglobe.jpg', $
ПОДКАТАЛОГ = ['примеры', 'данные'])
; Отобразите изображение Марса.
mgglobe = IMAGE(file, TITLE='Mars Study', $
XRANGE=[175, 325], YRANGE=[0, 150], $
TRANSPARENCY=20)
Марс Диаметр = 6792 ; km
scaleFactor = marsDiameter/400 ; км/пиксель
; Вставьте шкалу X.
; Зафиксируйте ось в положении DATA.
; Ограничьте AXIS_RANGE.
; Используйте COORD_TRANSFORM для преобразования координат.
ax1 = AXIS('x', LOCATION=70, $
TITLE='(km)', $
/DATA, $
AXIS_RANGE=[0, 600], $
COORD_TRANSFORM=[-1 95 , 1] * scaleFactor, $
MINOR=0, MAJOR=3)
; Вставьте шкалу Y.
; Зафиксируйте ось в положении DATA.
; Ограничьте AXIS_RANGE.
; Используйте COORD_TRANSFORM для преобразования координат.
ax2 = AXIS('y', LOCATION=235, $
TITLE='(km)', TEXTPOS=1, $
/DATA, $
AXIS_RANGE=[0, 500], $
COORD_TRANSFORM=[-75, 1] * масштабный коэффициент, $
MINOR=0, MAJOR=3)
x = findgen(1) 00)/ 5
y = beselj(x)
myPlot = PLOT(x, y, COLOR=’red’, NAME=’bessel_j0′)
Изменение осей и их свойств
Вы можете использовать ссылки на оси или точечные обозначения изменить свойства оси после создания любой графики. Дополнительные сведения о доступных свойствах оси см. в разделе AXIS(). Общие сведения о свойствах графики см. в разделе Изменение свойств графики.
Использование записи через точку
Создайте базовый график и узнайте, как можно использовать синтаксис точки для изменения свойств оси.
Скопируйте и вставьте следующий код в командную строку IDL, чтобы сгенерировать график, показанный выше: COLOR=’red’, NAME=’bessel_j0′)
Чтобы увидеть объяснение свойств для этих графиков, см. тему функции PLOT. Общий синтаксис для изменения графических свойств после создания:
< имя_переменной_графики >. PROPERTYNAME = значение
Вы можете изменить свойства графика, используя имя переменной графика вместе с синтаксисом «точка». Графика здесь показывает несколько свойств, которые вы можете изменить в интерактивном режиме. Попробуйте эти команды в командной строке, чтобы увидеть изменения в графиках:
myPlot.TITLE = "Пример графика для изменения свойств"
; Обозначьте оси
myPlot.XTITLE= "ось x
myPlot.YTITLE = "ось Y"
; изменить длину делений
myPlot.XTICKLEN = .02
myPlot.Y Щекотка = 0,02
;Изменить цвет текста по оси X
myPlot.XTEXT_COLOR = 'red'
;Поэкспериментировать со свойством TRANSPARENCY
myPlot.YTRANSPARENCY = 50
90 013 myPlot.YПРОЗРАЧНОСТЬ = 25
myPlot. YПРОЗРАЧНОСТЬ = 75
myPlot.XTRANSPARENCY = 0
Теперь ваш график должен выглядеть так:
Использование ссылок на оси и хеш-нотаций
Вы также можете использовать ссылки на оси и хэш-нотацию для изменения свойств конкретных осей. Помните, что на двумерном графике основная ось X нумеруется нулем («0»), а остальные оси нумеруются по часовой стрелке постепенно.
myPlot['axis0'].TITLE = 'ось X' ;изменить название основной оси x
myPlot['axis1'].TITLE = 'Y-axis' ;изменить название основной оси y
myPlot['axis1'].COLOR = 'зеленый лес' ;изменить цвет основной оси y- ось
myPlot['axis1'].TRANSPARENCY = 0 ;изменить прозрачность основной оси Y
myPlot['axis3'].TITLE = 'Вторая ось Y' ;добавить заголовок вторичной оси Y
myPlot['axis3'].SHOWTEXT = 1 ;отобразить его заголовок
myPlot['axis3'].TRANSPARENCY = 80 ;изменить прозрачность вторичных осей
myPlot['axis3']. TRANSPARENCY = 90
myPlot['axis2'].TRANSPARENCY = 90
Одним из преимуществ использования хеш-нотаций с числовыми ссылками на оси является то, что вы можете легко изменить свойства вторичного x- и оси Y. Эта нотация также работает с трехмерной графикой. Дополнительную информацию см. в разделе Ссылки на оси в графике IDL.
См. также
- Ссылки на оси в графике IDL
- Изменить свойства графики
- Примеры графики
- Метод поворота
- ОСЬ
- КОНТУР
- ИЗОБРАЖЕНИЕ
- Графические аннотации
- IDL
- Несколько графиков в одном окне
- Сохранить графику
- Форматирование графических символов и линий IDL
Графические функции
python — сохранить график в файл изображения вместо его отображения
Задавать вопрос
спросил
Изменено
1 месяц назад
Просмотрено
2,7 млн раз
Это отображает рисунок в графическом интерфейсе:
импортировать matplotlib. pyplot как plt plt.plot([1, 2, 3], [1, 4, 9]) plt.show()
Но как вместо этого сохранить рисунок в файл (например, foo.png)?
- питон
- matplotlib
- сюжет
2
При использовании matplotlib.pyplot.savefig
формат файла можно указать по расширению:
из matplotlib import pyplot as plt plt.savefig('foo.png') plt.savefig('foo.pdf')
Это дает растеризованный или векторизованный вывод соответственно.
Кроме того, иногда вокруг изображения появляются нежелательные пробелы, которые можно удалить с помощью:
plt.savefig('foo.png', bbox_inches='tight')
Обратите внимание, что при отображении графика plt.show()
должен следовать за plt.savefig()
; в противном случае изображение файла будет пустым.
3
Как уже говорили другие, plt.savefig()
или fig1.savefig()
действительно способ сохранить изображение.
Однако я обнаружил, что в некоторых случаях всегда отображается цифра . (например, со Spyder, имеющим plt.ion()
: интерактивный режим = On.) Я работаю над этим с помощью
принудительное закрытие окна рисунка с помощью:
plt.close(figure_object)
(см. документацию). Таким образом, у меня нет миллиона открытых фигур во время большого цикла. Пример использования:
импортировать matplotlib.pyplot как plt fig, ax = plt.subplots( nrows=1, ncols=1 ) # создать фигуру и 1 ось ax.plot([0,1,2], [10,20,3]) fig.savefig('path/to/save/image/to.png') # сохранить рисунок в файл plt.close(fig) # закрыть окно рисунка
Вы сможете повторно открыть фигуру позже, если потребуется, с помощью fig.show()
(сам не проверял).
1
Решение:
pylab.savefig('foo.png')
1
Только что нашел эту ссылку в документации MatPlotLib, посвященную именно этой проблеме:
http://matplotlib. org/faq/howto_faq.html#generate-images-without-having-a-window-appear
Говорят, что самый простой способ предотвратить всплывающее окно — использовать неинтерактивный бэкэнд (например, Агг), через matplotib.use(
, например:
импортировать matplotlib matplotlib.use('Агг') импортировать matplotlib.pyplot как plt plt.plot([1,2,3]) plt.savefig('myfig')
Лично я по-прежнему предпочитаю использовать plt.close( fig )
, так как тогда у вас есть возможность скрыть определенные цифры (во время цикла), но по-прежнему отображать цифры для обработки данных после цикла. Это, вероятно, медленнее, чем выбор неинтерактивного бэкэнда — было бы интересно, если бы кто-нибудь проверил это.
ОБНОВЛЕНИЕ : для Spyder обычно нельзя настроить серверную часть таким образом (поскольку Spyder обычно загружает matplotlib раньше, что не позволяет вам использовать matplotlib.use()
).
Вместо этого используйте plt. switch_backend('Agg')
или отключите « enable support » в настройках Spyder и выполните команду matplotlib.use('Agg')
самостоятельно.
Из этих двух подсказок: раз, два
5
Если вам не нравится концепция «текущей» фигуры, сделайте:
импортируйте matplotlib.image как mpimg img = mpimg.imread("src.png") mpimg.imsave("out.png", img)
5
импорт даты и времени импортировать numpy как np из matplotlib.backends.backend_pdf импортировать PdfPages импортировать matplotlib.pyplot как plt # Создадим объект PdfPages, в который будем сохранять страницы: # Оператор with обеспечивает правильное закрытие объекта PdfPages в момент # конец блока, даже если возникает Exception. с PdfPages('multipage_pdf.pdf') как pdf: plt.figure(figsize=(3, 3)) plt.plot (диапазон (7), [3, 1, 4, 1, 5, 9, 2], 'р-о') plt.title('Первая страница') pdf.savefig() # сохраняет текущую фигуру на странице pdf plt. close() plt.rc('текст', usetex=Истина) plt.figure(figsize=(8, 6)) х = np.arange (0, 5, 0,1) plt.plot(x, np.sin(x), 'b-') plt.title('Вторая страница') pdf.savefig() plt.close() plt.rc('текст', usetex=False) рис = plt.figure(figsize=(4, 5)) plt.plot (х, х * х, 'ко') plt.title('Третья страница') pdf.savefig(fig) # или вы можете передать объект Figure в pdf.savefig plt.close() # Мы также можем установить метаданные файла через объект PdfPages: д = pdf.infodict() d['Title'] = 'Пример многостраничного PDF' d['Автор'] = u'Jouni K. Sepp\xe4nen' d['Subject'] = 'Как создать многостраничный pdf-файл и установить его метаданные' d['Keywords'] = 'PdfPages многостраничные ключевые слова автор заголовок тема' d['CreationDate'] = datetime.datetime(2009, 11, 13) d['ModDate'] = datetime.datetime.today()
1
Я использовал следующее:
импортировать matplotlib.pyplot как plt p1 = plt. plot (даты, темп, 'r-', метка = "Температура (по Цельсию)") p2 = plt.plot(даты, псалмы, 'b-', label="Соленость (psu)") plt.legend(loc='верхний центр', numpoints=1, bbox_to_anchor=(0,5, -0,05), ncol=2, fancybox=True, shadow=True) plt.savefig('data.png') plt.show() plt.close()
Я считаю очень важным использовать plt.show после сохранения рисунка, иначе он не будет работать. Рисунок экспортирован в png
Остальные ответы верны. Однако иногда я обнаруживаю, что хочу открыть рисунок объект позже. Например, мне может понадобиться изменить размеры меток, добавить сетку или выполнить другую обработку. В идеальном мире я бы просто перезапустил код, генерирующий сюжет, и адаптировал настройки. Увы, мир не идеален. Поэтому помимо сохранения в PDF или PNG добавляю:
с open('some_file.pkl', "wb") как fp: pickle.dump(рисунок,fp,протокол=4)
Таким образом, я могу позже загрузить объект фигуры и манипулировать настройками по своему усмотрению.
Я также записываю стек с исходным кодом и словарем locals()
для каждой функции/метода в стеке, чтобы позже я мог точно сказать, что сгенерировало рисунок.
NB: Будьте осторожны, так как иногда этот метод создает огромные файлы.
2
После использования plot() и других функций для создания нужного содержимого вы можете использовать подобное предложение для выбора между выводом на экран или в файл:
import matplotlib.pyplot as plt fig = plt.figure(figsize=(4, 5)) # размер в дюймах # используйте plot() и т. д. для создания графика. # Выберите одну из следующих строк, чтобы раскомментировать # save_file = Нет # save_file = os.path.join(ваш_каталог, ваше_имя_файла) если файл_сохранения: plt.savefig(файл_сохранения) plt.close(рис.) еще: plt.show()
1
Если, как и я, вы используете Spyder IDE, вы должны отключить интерактивный режим с помощью:
plt.ioff()
(эта команда запускается автоматически при научном запуске)
Если вы хотите включить еще раз, используйте:
plt.ion()
Вы можете сделать:
plt. show(hold=False) plt.savefig('имя.pdf')
и не забудьте дать savefig завершиться перед закрытием графического интерфейса. Таким образом, вы можете увидеть изображение заранее.
Кроме того, вы можете просмотреть его с помощью plt.show()
Затем закройте графический интерфейс и снова запустите скрипт, но на этот раз замените plt.show()
на plt.savefig()
.
В качестве альтернативы вы можете использовать
fig, ax = plt.figure(nrows=1, ncols=1) plt.plot(...) plt.show() fig.savefig('out.pdf')
1
В соответствии с вопросом Matplotlib (pyplot) savefig выводит пустое изображение.
Следует отметить одну вещь: если вы используете plt.show
и следует после plt.savefig
, иначе вы получите пустое изображение.
Подробный пример:
импортировать numpy как np импортировать matplotlib.pyplot как plt def draw_result (lst_iter, lst_loss, lst_acc, title): plt. plot(lst_iter, lst_loss, '-b', метка = 'потеря') plt.plot(lst_iter, lst_acc, '-r', метка = 'точность') plt.xlabel ("n итерация") plt.legend(loc='верхний левый') plt.title(название) plt.savefig(title+".png") # следует перед методом plt.show plt.show() определение test_draw(): lst_iter = диапазон (100) lst_loss = [0,01 * i + 0,01 * i ** 2 для i в xrange (100)] # lst_loss = np.random.randn(1, 100).reshape((100, )) lst_acc = [0,01 * i - 0,01 * i ** 2 для i в xrange (100)] # lst_acc = np.random.randn(1, 100).reshape((100, )) draw_result(lst_iter, lst_loss, lst_acc, "sgd_method") если __name__ == '__main__': test_draw()
Решение:
импортировать панд как pd импортировать numpy как np импортировать matplotlib.pyplot как plt импортировать matplotlib matplotlib.style.use('ggplot') ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', периоды=1000)) тс = тс.cumsum() plt.figure() ц.сюжет() plt.savefig("foo. png", bbox_inches='плотно')
Если вы хотите отобразить изображение, а также сохранить изображение, используйте:
%matplotlib встроенный
после
импортировать matplotlib
При использовании matplotlib.pyplot
вы должны сначала сохранить свой график, а затем закрыть его, используя эти 2 строки:
fig.savefig('plot.png') # сохраните график, поместите путь, который вы хотите сохранить цифра в цитате plt.close(fig) # закрыть окно рисунка
импортировать matplotlib.pyplot как plt plt.savefig("image.png")
В Jupyter Notebook вы должны удалить plt.show()
и добавить plt.savefig()
вместе с остальным кодом plt в одной ячейке.
Изображение по-прежнему будет отображаться в вашем блокноте.
0
В дополнение к вышеперечисленным я добавил __file__
для имени, чтобы изображение и файл Python получили одинаковые имена. Я также добавил несколько аргументов, чтобы он выглядел лучше:
# Сохраняет PNG-файл текущего графика в папку и каждый раз обновляет его. # (nameOfimage, dpi=(sizeOfimage),Keeps_Labels_From_Disappearing) plt.savefig(__file__+".png",dpi=(250), bbox_inches='tight') # Жестко закодированное имя: './test.png'
Просто дополнительное примечание, потому что я пока не могу комментировать посты.
Если вы используете plt.savefig('myfig')
или что-то подобное, обязательно добавьте plt.clf()
после сохранения изображения. Это связано с тем, что savefig не закрывает график, и если вы добавляете к графику после без plt.clf()
, вы будете добавлять к предыдущему графику.
Возможно, вы не заметите, если ваши графики будут похожими, поскольку они будут построены поверх предыдущего графика, но если вы находитесь в цикле сохранения своих фигур, график постепенно станет массивным и сделает ваш сценарий очень медленным.
Учитывая, что сегодня (было недоступно, когда был задан этот вопрос) многие люди используют Jupyter Notebook в качестве консоли Python, существует очень простой способ сохранить графики как . png
, просто вызовите matplotlib
pylab
из Jupyter Notebook, нарисуйте «встроенные» ячейки jupyter фигуры, а затем перетащите эту фигуру/изображение в локальный каталог. Не забывайте
%matplotlib встроенный
в первой строке!
1
Что ж, я рекомендую использовать обертки для рендеринга или управления графикой. примерами могут быть mpltex (https://github.com/liuyxpp/mpltex) или prettyplotlib (https://github.com/olgabot/prettyplotlib).
импорт мплтекс @mpltex.acs_decorator определить мой сюжет(): plt.figure() plt.plot(x,y,'b-',lable='xxx') plt.tight_layout (площадка = 0,5) plt.savefig('xxxx') # формат рисунка контролировался декоратором, это может быть как eps, так и pdf или png.... plt.close()
В основном я часто использую этот декоратор для публикации научных статей в различных журналах Американского химического общества, Американского физического общества, Американского оптического общества, Elsivier и так далее.
Пример можно найти на следующем изображении (https://github.com/MarkMa1990/gradientDescent):
Как было предложено ранее, вы можете использовать:
импортировать matplotlib.pyplot как plt plt.savefig("myfig.png")
Для сохранения любого отображаемого изображения IPhython. Или в другой заметке (смотря под другим углом), если вы когда-нибудь будете работать с открытым резюме, или если у вас есть импортированное открытое резюме, вы можете использовать:
import cv2 cv2.imwrite ("myfig.png", изображение)
Но это на тот случай, если вам нужно работать с Open CV. В противном случае должно быть достаточно plt.savefig()
.
Вы можете сделать это так:
def plotAFig(): plt.figure() plt.plot(x,y,'b-') plt.savefig("имя_фигуры.png") plt.close()
У меня ничего не работало. Проблема в том, что сохраненное изображение было очень маленьким, и я не мог найти, как, черт возьми, увеличить его.
Это, кажется, делает его больше, но все еще не на весь экран.
https://matplotlib.org/stable/api/figure_api.html#matplotlib.figure.Figure.set_size_inches
fig.set_size_inches((w, h))
Надеюсь, это кому-нибудь поможет.
Вы можете сохранить изображение с любым расширением (png, jpg и т.д.) и с желаемым разрешением. Вот функция, чтобы сохранить вашу фигуру.
импорт ОС def save_fig(fig_id, tight_layout=True, fig_extension="png", разрешение=300): path = os.path.join(IMAGES_PATH, fig_id + "." + fig_extension) print("Сохранение рисунка", fig_id) если плотно_layout: plt.tight_layout() plt.savefig (путь, формат = fig_extension, dpi = разрешение)
‘fig_id’ — это имя, под которым вы хотите сохранить свою фигуру. Надеюсь, это поможет 🙂
, используя «agg» из-за отсутствия графического интерфейса на сервере.
Отладка на Ubuntu 21.10 с графическим интерфейсом и VSC.
При отладке пытается отобразить график и затем сохранить в файл для веб-интерфейса.
Выяснил, что требуется сохранение перед показом, иначе сохраненный график пуст.