Добавить текущий путь к параметру команды [duplicate]

Короткий ответ: вы можете использовать bbox_to_anchor + bbox_extra_artists + bbox_inches='tight'.


Более длинный ответ: вы можете использовать bbox_to_anchor, чтобы вручную указать расположение окна легенды, как указывали некоторые другие люди в ответах.

Однако обычная проблема заключается в том, что поле легенды обрезается, например:

import matplotlib.pyplot as plt

# data 
all_x = [10,20,30]
all_y = [[1,3], [1.5,2.9],[3,2]]

# Plot
fig = plt.figure(1)
ax = fig.add_subplot(111)
ax.plot(all_x, all_y)

# Add legend, title and axis labels
lgd = ax.legend( [ 'Lag ' + str(lag) for lag in all_x], loc='center right', bbox_to_anchor=(1.3, 0.5))
ax.set_title('Title')
ax.set_xlabel('x label')
ax.set_ylabel('y label')

fig.savefig('image_output.png', dpi=300, format='png')

enter image description here [/g1]

Чтобы предотвратить когда вы сохраняете фигуру, вы можете использовать параметры bbox_extra_artists и bbox_inches, чтобы спросить savefig включить обрезанные элементы в сохраненное изображение:

fig.savefig('image_output.png', bbox_extra_artists=(lgd,), bbox_inches='tight')

Пример (я только изменил последнюю строку, чтобы добавить 2 параметра к fig.savefig()):

import matplotlib.pyplot as plt

# data 
all_x = [10,20,30]
all_y = [[1,3], [1.5,2.9],[3,2]]

# Plot
fig = plt.figure(1)
ax = fig.add_subplot(111)
ax.plot(all_x, all_y)

# Add legend, title and axis labels
lgd = ax.legend( [ 'Lag ' + str(lag) for lag in all_x], loc='center right', bbox_to_anchor=(1.3, 0.5))
ax.set_title('Title')
ax.set_xlabel('x label')
ax.set_ylabel('y label')    

fig.savefig('image_output.png', dpi=300, format='png', bbox_extra_artists=(lgd,), bbox_inches='tight')

enter image description here [/g2]

Желаю matplotlib предположительно разрешил бы внешнее местоположение для окна легенды, поскольку Matlab делает :

figure
x = 0:.2:12;
plot(x,besselj(1,x),x,besselj(2,x),x,besselj(3,x));
hleg = legend('First','Second','Third',...
              'Location','NorthEastOutside')
% Make the text of the legend italic and color it brown
set(hleg,'FontAngle','italic','TextColor',[.3,.2,.1])

enter image description here [/g3]

122
задан vaxquis 3 June 2016 в 03:13
поделиться

10 ответов

В Windows:

CHDIR Отображает имя или изменяет текущий каталог.

В Linux:

PWD Отображает имя текущего каталога.

5
ответ дан Ajay Jayavarapu 20 August 2018 в 16:46
поделиться

Это всегда срабатывало для меня:

SET CurrentDir="%~dp0"

ECHO The current file path this bat file is executing in is the following:

ECHO %CurrentDir%

Pause
8
ответ дан Danny Beckett 20 August 2018 в 16:46
поделиться

Почему люди слишком усложняют это?

Существует два простых метода, и оба они связаны с модулем «os». Вы можете использовать:

os.system("cd")

или

print(os.getcwd())

Желаем удачи!

0
ответ дан DJ PC 20 August 2018 в 16:46
поделиться

Основываясь на следующем вопросе (храня данные в переменной) в комментариях к сообщению chdir, я уверен, что он хочет сохранить текущий путь для его восстановления после смены каталогов.

оригинальный пользователь должен посмотреть на «pushd», который меняет каталог и толкает текущий в стек, который можно восстановить с помощью «popd». На любой современной Windows CMD-оболочке, которая подходит для создания пакетных файлов.

Если вам действительно нужно захватить текущий путь, то в современных CMD-оболочках также есть переменная% CD%, которую вы можете легко набрать в другой переменной для ссылки.

3
ответ дан Mark 20 August 2018 в 16:46
поделиться

Для Windows, cd сам покажет вам текущий рабочий каталог.

Для UNIX и рабочих систем, pwd выполнит ту же задачу. Вы также можете использовать переменную оболочки $PWD в некоторых оболочках. Я не уверен, поддерживает ли Windows получение текущего рабочего каталога через переменную оболочки или нет.

5
ответ дан Michael Trausch 20 August 2018 в 16:46
поделиться
@for /f "usebackq" %%x in (`chdir`) do set var=%%x
@echo "The currenct directory is: %var%"

Но, конечно, , ответ gmaran23 намного проще.

1
ответ дан René Nyffenegger 20 August 2018 в 16:46
поделиться

В командной строке Windows chdir или cd выведет полный путь к текущему рабочему каталогу в консоли. Если мы хотим скопировать путь, мы можем использовать: cd | clip.

Спасибо.

0
ответ дан Samrat Debroy 20 August 2018 в 16:46
поделиться

В Windows Type cd для текущего текущего пути в Linux pwd Для текущего рабочего пути

-2
ответ дан Shafeer khan 20 August 2018 в 16:46
поделиться

В Unix?

pwd

22
ответ дан Stephen Curial 20 August 2018 в 16:46
поделиться

Вы можете установить переменную batch / environment следующим образом:

SET var=%cd%
ECHO %var%

пример скриншота из Windows 7 x64 cmd.exe.

enter image description here [/g2]

Обновление: , если вы выполняете SET var = %cd% вместо SET var=%cd%, то происходит то, что происходит. Благодаря jeb.

enter image description here [/g3]

Захват текущего каталога из пакетного файла

65
ответ дан vaxquis 20 August 2018 в 16:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: