我慢慢地从R过渡到Python,而一些更微妙的差异让我有点疯狂。我在博客Practical Business Python
中找到了一篇非常有趣的指南有效使用Matplotlib在这里,作者展示了如何使用以下代码行(简短版本)逐步构建图表:
# Modules
import pandas as pd
import matplotlib.pyplot as plt
# Get the data
df = pd.read_excel("https://github.com/chris1610/pbpython/blob/master/data/sample-salesv3.xlsx?raw=true")
df.head()
# Rearrange data
top_10 = (df.groupby('name')['ext price', 'quantity'].agg({'ext price': 'sum', 'quantity': 'count'})
.sort_values(by='ext price', ascending=False))[:10].reset_index()
top_10.rename(columns={'name': 'Name', 'ext price': 'Sales', 'quantity': 'Purchases'}, inplace=True)
# Customize plot
plt.style.use('ggplot')
# And here's the part that puzzles me:
fig, ax = plt.subplots()
top_10.plot(kind='barh', y="Sales", x="Name", ax=ax)
我在Spyder中乱搞这一点,我注意到这个代码逐行运行部分与运行与选择相同的行之间存在差异。
选项1,第1步:
选项1,第2步
选项2
我猜测结果会以某种方式相同"引擎盖",我尝试使用plt.show
,plt.draw
和{{来渲染图表1}}。但到目前为止还没有运气。
我认为这个问题的答案与IPython中的基本功能和/或这些元素如何分配给内存有关,但整件事让我感到困惑。我希望你们中的一些人能够抽出时间来解释这个问题,并提出进一步的建议来解决这些问题。
谢谢!
修改
我在Windows上使用Spyder 2.3.8和Python 3.5.1