#matplotlib #jupyter-notebook #data-visualization #seaborn
#matplotlib #jupyter-записная книжка #визуализация данных #seaborn
Вопрос:
допустим, у нас есть df, подобный приведенному ниже
Я построил график с использованием seaborn. После этого я извлек данные xticks. всякий раз, когда я запускаю в следующей ячейке, он показывает правильный результат, но в той же ячейке отображается разница. выделены оба. в чем причина этого и как устранить.
Код PFB: часть DF—>
df={'A':48,'B':12,'C':86}
df=pd.DataFrame(list(df.items()),columns=("name","score"))
df['score']=df['score']/100
df
часть построения графика —>
fig, ax=matplotlib.pyplot.subplots(figsize=(10,2))
g=sns.barplot(y='name',x='score',data=df,ax=ax)
ax.set_xticks([0,0.25,0.5,0.75,1.0])
ax.set_xticklabels(['0.00', 'bad','ok','good','v. good'])
ax.get_xticklabels()[1]
повторное получение xticks в ячейке diff —->
ax.get_xticklabels()[1]
Комментарии:
1. Пожалуйста, добавьте код и данные в виде текста, а не в виде изображения
Ответ №1:
Каким-то образом вам нужно использовать plt.show()
перед вызовом ax.get_xticklabels()
. Я предполагаю, что эта переменная не вычисляется до тех пор, пока не будет сгенерирован график. Итак, если вы запустите следующее в одной ячейке:
fig, ax=matplotlib.pyplot.subplots(figsize=(10,2))
g=sns.barplot(y='name',x='score',data=df,ax=ax)
ax.set_xticks([0,0.25,0.5,0.75,1.0])
ax.set_xticklabels(['0.00', 'bad','ok','good','v. good'])
for elem in ax.get_xticklabels():
print(elem)
plt.show()
for elem in ax.get_xticklabels():
print(elem)
Вы получаете следующее:
Комментарии:
1. Спасибо, это сработало с plt.show () в Jupyter . но ‘matplotlib.use(‘Agg’) также присутствует в вопросе, поэтому plt.show() там не работает . есть ли какой-либо другой способ, которым мы можем вычислить переменную?
2. Что вы подразумеваете под «‘matplotlib.use(‘Agg’) также присутствует в вопросе»? Отредактируйте свой вопрос, если вам это нужно, пожалуйста
3. Пожалуйста, проигнорируйте мой последний комментарий .. это была другая проблема.. ваш предыдущий ответ сработал. Спасибо
Ответ №2:
Я не смог воспроизвести вашу проблему с помощью предоставленного вами кода. Можете ли вы повторить попытку и включить индикаторы выполнения ячейки на левом краю?
Комментарии:
1. Возможно, это также связано с конфигурацией matplotlib (например, в
%matplotlib inline
случае)