matplotlib如何开始刻度线,从轴原点开始留有空间


问题内容

我需要针对日期将非数字数据绘制为简单的折线图。我正在使用matplotlib。

这是一些示例代码。

import matplotlib.pyplot as plt

xticks=['Jan','Feb','Mar','April','May']
x=[1,2,3,4,5]
yticks = ['Windy', 'Sunny', 'Rainy', 'Cloudy', 'Snowy']
y=[2,1,3,5,4]

plt.plot(x,y,'bo') #.2,.1,.7,.8
plt.subplots_adjust(left =0.2)

plt.xticks(x,xticks)
plt.yticks(y,yticks)
plt.show()

从代码生成图

我想开始刻度标签,从原点开始留一些空间。这样它们看起来不会很挤。我应该为此使用Fixedlocator吗?我也希望该图是一条线,显示示例中每个点的标记。我该如何实现?


问题答案:
  • 您可以通过设置较低的ylim来“提升”图形ax.set_ylim
  • 可以使用marker = 'o' 以下调用中的参数设置将标记点添加到绘图中plt.plot

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

xticks=['Jan','Feb','Mar','April','May']
x=[1,2,3,4,5]
yticks = ['Windy', 'Sunny', 'Rainy', 'Cloudy', 'Snowy']
y=[2,1,3,5,4]

plt.plot(x,y,'b-', marker = 'o') #.2,.1,.7,.8
plt.subplots_adjust(left =0.2)

plt.xticks(x,xticks)
plt.yticks(y,yticks)
ax.set_ylim(0.5,max(y))
plt.show()

在此处输入图片说明