【问题标题】:Jupyter Notebook plots not starting at 0 on x-axisJupyter Notebook 绘图不在 x 轴上从 0 开始
【发布时间】:2020-08-29 17:27:01
【问题描述】:

当我在 Jupyter Notebook 中绘图时,由于某种原因,我的绘图不会一直延伸到 y 轴。如何设置它们的样式,使它们看起来像第一张而不是第二张?

sns.set_style("whitegrid")
sns.lmplot(x='Month', y='twp', data=byMonth)
plt.ylim([6000, 15000])
plt.xlim([0, 12])

【问题讨论】:

  • 尝试从零开始添加标记和标签。

标签: python matplotlib jupyter-notebook seaborn


【解决方案1】:

sns.lmplot 有一个参数truncate 可以设置为False 以绘制绘图直到绘图限制。但是由于lmplot是一个图形级别的函数,它会创建自己的图形和轴,所以你不能轻易地预先设置限制。

sns.lmplot 替换为底层轴级函数 sns.regplot 可以在调用函数之前设置限制。注意regplot 只创建一个子图,而lmplot 可以通过其row=col= 和/或hue= 参数创建一个完整的子图网格。

from matplotlib import pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd

byMonth = pd.DataFrame({'Month': range(1, 13), 'twp': 13000 - np.random.randint(-800, 2000, 12).cumsum()})

sns.set_style("whitegrid")
plt.xlim([0, 12])
plt.ylim([6000, 15000])
sns.regplot(x='Month', y='twp', data=byMonth, truncate=False)

plt.show()

如果确实需要lmplot,您可以暂时将x 边距设置得更宽:

old_xmargin = mpl.rcParams['axes.xmargin']
mpl.rcParams['axes.xmargin'] = 0.2  # temporarily set default x-margin large enough
sns.lmplot(x='Month', y='twp', data=byMonth, truncate=False)
mpl.rcParams['axes.xmargin'] = old_xmargin
plt.xlim([0, 12])
plt.ylim([6000, 15000])

【讨论】:

  • 如果这回答了您的问题,您可以考虑投票和/或marking 将答案视为已接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-08
  • 2018-01-29
  • 1970-01-01
  • 1970-01-01
  • 2017-05-11
  • 2016-12-30
相关资源
最近更新 更多