Итак, я довольно новый программист на языке python и застрял на этой второстепенной проблеме дольше, чем должен быть. I have this plot, и, как вы видите, только избранные значения отображаются как научная нотация.Настройка пользовательских imshow тиков будет выглядеть как научная нотация
Я хотел бы, чтобы все значения появляются в научной нотации (т.е. 1E1, 1E2 ... и так далее) Вот одна из попыток (многих), которые я пробовал:
fig2 = plt.figure(2)
ax = plt.gca()
plt.ticklabel_format(style='sci', axis='x', scilimits=(0,0))
plt.xlabel('gamma')
plt.ylabel('C')
plt.imshow(scores, interpolation='nearest', cmap=plt.cm.hot,
norm=MidpointNormalize(vmin=0.2, midpoint=0.7))
plt.colorbar()
ax.set_yticks(range(len(C_range)))
ax.set_yticklabels(C_range)
ax.set_xticks(range(len(gamma_range)))
ax.set_xticklabels((gamma_range), rotation=45)
plt.title('Validation accuracy')
plt.tight_layout()
fig2.show()
линии # 3 в коде выше, кажется, ничего не делает, поэтому я думал, что смогу переместить его после части «set_xticks», так как я предполагаю, что эти строки перезаписывают команду ticklabel_format. Так усталым следующее:
fig2 = plt.figure(2)
ax = plt.gca()
plt.xlabel('gamma')
plt.ylabel('C')
plt.imshow(scores, interpolation='nearest', cmap=plt.cm.hot,
norm=MidpointNormalize(vmin=0.2, midpoint=0.7))
plt.colorbar()
ax.set_yticks(range(len(C_range)))
ax.set_yticklabels(C_range)
ax.set_xticks(range(len(gamma_range)))
ax.set_xticklabels((gamma_range), rotation=45)
plt.ticklabel_format(style='sci', axis='x', scilimits=(0,0))
plt.title('Validation accuracy')
plt.tight_layout()
fig2.show()
Какие результаты в:
AttributeError: This method only works with the ScalarFormatter.
Я прочитал множество примеров о том, как сделать что-то вроде этого, но каждый раз, когда я следую за то, что было сделано, либо ничего не происходит, или я получить ту же ошибку.
Не могли бы вы объяснить, что именно здесь происходит? Изменяет ли ax.set_yticks форматтер? Я явно не выбрал форматировщик, это то, что мне нужно сделать? И как я могу заставить это сделать то, что я ищу?
Спасибо, продвинутый! Прошу прощения, если это немного грязно, это, вероятно, второй вопрос, который я когда-либо задавал. Просто дай мне знать, если что-то изменить.
Я также играть arounf с MPL тикер библиотеки, например: 'mtick.ScalarFormatter. set_scientific (mtick.ScalarFormatter(), True) mtick.ScalarFormatter.set_powerlimits (mtick.ScalarFormatter(), (0,0)) ' , но он, кажется, ничего не делает. Мне трудно докучать документы на ScalarFormatter. –