Смещение подписей трехмерного графика
Я строю трехмерную визуализацию по датасету и в ней подписи шкал 'disk', 'year' и 'price' накладываются на градуировки шкал.
import numpy as np
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D # для отрисовки 3D проекции
%matplotlib inline
matplotlib.rc("font", size=18) # для увеличения шрифта подписей графиков
phones = pd.read_csv('1.8_phones.csv', encoding='utf-8', header=None)
phones.drop(phones.index[0], inplace=True)
phones.rename(columns={0: 'disk', 1: 'os', 2: 'price', 3: 'year'}, inplace=True)
phones['disk'] = phones['disk'].astype(int)
phones['price'] = phones['price'].astype(int)
phones['year'] = phones['year'].astype(int)
from sklearn.linear_model import LinearRegression
X = phones[['disk']]
y = phones['price']
reg = LinearRegression().fit(X, y)
[b] = reg.coef_
a = reg.intercept_
def reg_prediction(disk):
return a + b * disk
fig = plt.figure(figsize=(8, 8)) # создаем картинку
ax = plt.axes(projection="3d") # устанавливаем проекцию
# помещаем точки на график
ax.scatter(phones["disk"], phones["year"], phones["price"], s=100)
plt.title('Зависимость цены телефона от памяти и года выпуска', fontsize = 15)
ax.set_xlabel("disk", loc='right')
ax.set_ylabel("year")
ax.set_zlabel("price")
plt.show()
Необходимо отодвинуть подписи шкал от их градуировки, чтобы они не заходили друг на друга. Установки позиции подписей с помощью loc='right/left' не помогли.
Ответы (1 шт):
Автор решения: passant
→ Ссылка
ax.set_xlabel("disk", loc='right', labelpad = 20.)
ax.set_ylabel("year", labelpad = 40.)
ax.set_zlabel("price", labelpad = 60.)

