Преобразовать 2 ^ n в число c в python график - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь построить линию в python и использовать базовый масштаб журнала на оси. Однако я хотел бы, чтобы значения отображались в виде цифр c вместо 2 ^ n, то есть 2 ^ 1 должно отображаться как 2, 2 ^ 2 как 4 и так далее. Можно ли изменить эти значения?

Это мой текущий код для построения:

	# plot the line
	plt.plot(labeled_samples, result, color='black', label='Normal SVM', marker='*')
	#plt.plot(, color='black', label = 'Polynomial', marker='o')
	plt.legend(loc="upper right")
	plt.ylim([0.05, 0.5])
	plt.yticks(np.arange(0.05, 0.55, 0.05))
	plt.xscale('log', basex=2)
	plt.xlabel('Nb of labeled points')
	plt.ylabel('Test error')
	set_major_formatter(ScalarFormatter())
	plt.show()

enter image description here

1 Ответ

3 голосов
/ 15 января 2020

Вот один из способов сделать это: Изменить метки на оси X, используя целочисленные значения. Вы не предоставили Минимальный, Полный и Проверяемый пример , поэтому я использую некоторые тестовые данные

x = np.logspace(1, 7, 7, base=2, dtype=int)
y = x**0.05
plt.plot(x, y, color='black', label='Normal SVM', marker='*')
plt.legend(loc="upper right")

plt.xscale('log', basex=2)
plt.xlabel('Nb of labeled points')
plt.ylabel('Test error')
plt.xticks(x, x);

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...