Я следил за wiki
TestDisk 7.0, Data Recovery Utility, April 2015
Christophe GRENIER <grenier@cgsecurity.org>
Disk /dev/sdc - 124 GB / 115 GiB - CHS 15102 255 63
Partition Start End Size in sectors
No partition found or selected for recovery
Но этот инструмент testdisk, без сомнения, most awesome. В главном меню я выбрал «Дополнительно» и продолжил, все файлы появились, и я скопировал их на внутренний диск. Я сказал, что этот инструмент потрясающий :).
Copying, please wait... 2 ok, 0 failed
Directory /media/sda
>drwxr-xr-x 0 0 4096 17-Jun-2016 15:13 .
drwxr-xr-x 0 0 100 17-Jun-2016 15:13 ..
drwx------ 0 0 16384 17-Jun-2016 15:13 lost+found
Как указано в других ответах, идея, как правило, заключается в определении осей для цветной панели, в которой они находятся. Существуют различные способы сделать это; который еще не упоминался, заключался бы в прямом определении осей colorbar при создании подзадачи с помощью plt.subplots(). Преимущество состоит в том, что положение оси не нужно устанавливать вручную, и во всех случаях с автоматическим аспектом цветная панель будет точно такой же высоты, как и подзаголовки. Даже во многих случаях, когда используются изображения, результат будет удовлетворительным, как показано ниже.
При использовании plt.subplots() использование аргумента gridspec_kw позволяет сделать оси цветной панели намного меньшими, чем другие оси.
fig, (ax, ax2, cax) = plt.subplots(ncols=3,figsize=(5.5,3),
gridspec_kw={"width_ratios":[1,1, 0.05]})
Пример:
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(1)
fig, (ax, ax2, cax) = plt.subplots(ncols=3,figsize=(5.5,3),
gridspec_kw={"width_ratios":[1,1, 0.05]})
fig.subplots_adjust(wspace=0.3)
im = ax.imshow(np.random.rand(11,8), vmin=0, vmax=1)
im2 = ax2.imshow(np.random.rand(11,8), vmin=0, vmax=1)
ax.set_ylabel("y label")
fig.colorbar(im, cax=cax)
plt.show()
Это хорошо работает, если аспект сюжета автомасштабирован или изображения уменьшаются из-за их аспекта в направление ширины (как указано выше). Если, однако, изображения более широкие, но высокие, результат будет выглядеть следующим образом, что может быть нежелательным.
Решение по исправлению цветной панели высота до высоты подзаголовка должна была бы использовать mpl_toolkits.axes_grid1.inset_locator.InsetPosition для установки осей цветной панели относительно осей субплана изображения.
import matplotlib.pyplot as plt
import numpy as np; np.random.seed(1)
from mpl_toolkits.axes_grid1.inset_locator import InsetPosition
fig, (ax, ax2, cax) = plt.subplots(ncols=3,figsize=(7,3),
gridspec_kw={"width_ratios":[1,1, 0.05]})
fig.subplots_adjust(wspace=0.3)
im = ax.imshow(np.random.rand(11,16), vmin=0, vmax=1)
im2 = ax2.imshow(np.random.rand(11,16), vmin=0, vmax=1)
ax.set_ylabel("y label")
ip = InsetPosition(ax2, [1.05,0,0.05,1])
cax.set_axes_locator(ip)
fig.colorbar(im, cax=cax, ax=[ax,ax2])
plt.show()
[!d5]
Использование make_axes еще проще и дает лучший результат. Он также предоставляет возможности для настройки позиционирования цветной панели. Также обратите внимание на возможность subplots делиться осями x и y.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
fig, axes = plt.subplots(nrows=2, ncols=2, sharex=True, sharey=True)
for ax in axes.flat:
im = ax.imshow(np.random.random((10,10)), vmin=0, vmax=1)
cax,kw = mpl.colorbar.make_axes([ax for ax in axes.flat])
plt.colorbar(im, cax=cax, **kw)
plt.show()
Как новичок, который наткнулся на этот поток, я хотел бы добавить адаптацию python для манекенов очень аккуратного ответа abevieiramota (потому что я на том уровне, что мне нужно было искать «ravel», чтобы выработать что делает их код):
import numpy as np
import matplotlib.pyplot as plt
fig, ((ax1,ax2,ax3),(ax4,ax5,ax6)) = plt.subplots(2,3)
axlist = [ax1,ax2,ax3,ax4,ax5,ax6]
first = ax1.imshow(np.random.random((10,10)), vmin=0, vmax=1)
third = ax3.imshow(np.random.random((12,12)), vmin=0, vmax=1)
fig.colorbar(first, ax=axlist)
plt.show()
Гораздо меньше питонов, гораздо проще для noobs, подобных мне, чтобы посмотреть, что на самом деле происходит здесь.
Решение использования списка осей abevieiramota работает очень хорошо, пока вы не используете только один ряд изображений, как указано в комментариях. Использование разумного соотношения сторон для figsize помогает, но все еще далек от совершенства. Например:
import numpy as np
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(9.75, 3))
for ax in axes.flat:
im = ax.imshow(np.random.random((10,10)), vmin=0, vmax=1)
fig.colorbar(im, ax=axes.ravel().tolist())
plt.show()
предоставляет параметр shrink, который является масштабным коэффициентом для размеров осей цветной панели. Это требует некоторых ручных проб и ошибок. Например:
fig.colorbar(im, ax=axes.ravel().tolist(), shrink=0.75)
[!d4]