【问题标题】:getting different answer in different cells of jupyter[plot of sns]在 jupyter 的不同单元格中得到不同的答案[sns 图]
【发布时间】:2020-12-11 18:10:53
【问题描述】:

假设我们有一个像下面这样的 df

我使用 seaborn 进行了绘图。之后,我提取了 xticks 数据。每当我在下一个单元格中运行时,它都会显示正确的结果,但在同一个单元格中,它会显示 diff .highlighted both 。这是什么原因以及如何解决。

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 ---->

   ax.get_xticklabels()[1]

【问题讨论】:

  • 请将代码和数据添加为文本,而不是图像

标签: matplotlib jupyter-notebook data-visualization seaborn


【解决方案1】:

在调用ax.get_xticklabels() 之前,您需要使用plt.show()。我假设在生成图形之前不会计算这个变量。因此,如果您在单个单元格中运行以下命令:

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)

您将获得以下内容:

【讨论】:

  • 谢谢,它与 Jupyter 中的 plt.show() 一起使用。但是 'matplotlib.use('Agg') 也出现在问题中,所以 plt.show() 在那里不起作用。还有其他方法可以计算变量吗?
  • 你的意思是“'matplotlib.use('Agg') 也存在于问题中”?编辑您的问题以备不时之需
  • 请忽略我的最后评论..这是另一个问题..您之前的回答有效.谢谢
【解决方案2】:

我无法使用您提供的代码复制您的问题。您可以重试并在左边缘包含单元执行指示符吗?

【讨论】:

  • 可能也和matplotlib的配置有关(比如%matplotlib inline的情况)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-26
相关资源
最近更新 更多