Я начинаю изучать панд и морских существ. Я тестирую линейный график, но ось X графика не показывает диапазон, который я ожидал для этого атрибута (num_of_elements
). Я ожидал, что каждое значение этого атрибута отображается на оси x. Может кто-нибудь объяснить, чего мне не хватает в этом сюжете? Спасибо.
Вот код, который я использую:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib import ticker
df_scability = pd.DataFrame()
df_scability['num_of_elements'] = [13,28,43,58,73,88,93,108,123,138]
df_scability['time_minutes'] = [2,3,5,7,20,30,40,50,60,90]
df_scability['dataset'] = ['Top 10 users','Top 10 users','Top 10 users','Top 10 users','Top 10 users','Top 10 users',
'Top 10 users','Top 10 users','Top 10 users','Top 10 users']
dpi = 600
fig = plt.figure(figsize=(3, 2),dpi=dpi)
ax = sns.lineplot(x = "num_of_elements", y = "time_minutes", hue='dataset', err_style='bars', data = df_scability)
ax.legend(loc='upper left', fontsize=4)
sns.despine(offset=0, trim=True, left=True)
ax.yaxis.set_major_locator(ticker.MultipleLocator(10))
ax.set_yticklabels(ax.get_ymajorticklabels(), fontsize = 6)
ax.yaxis.set_major_formatter(ticker.ScalarFormatter())
ax.set_xticklabels(ax.get_xmajorticklabels(), fontsize = 6)
ax.xaxis.set_major_formatter(ticker.ScalarFormatter())
plt.ylabel('AVG time (min)',fontsize=7)
plt.xlabel('Number of elements',fontsize=7)
plt.tight_layout()
plt.show()
Спасибо @Zephyr. Это сработало для меня. Однако у меня есть вопрос по поводу клещей. Вы сказали, что despine удаляет шипы с графика, и отображаются только значения галочек 50 и 100. Я хотел бы показать точно каждое значение на оси x. Для этого я просто заменил диапазон значениями списка в 'num_of_elements'.
Да, вы можете передать
ax.set_xticks
список тиков, которые вы хотите отобразить