仅显示x轴图的第一个和最后一个刻度标签

时间:2017-09-19 22:42:03

标签: python matplotlib

我正在解析日志文件并创建绘图。

我不需要X轴上的所有标签。我想只显示第一个和最后一个或几个特定步骤让我们说每100个。

我怎么能这样做?我只能显示第一个或只显示最后一个但不能同时显示。

我的代码:

import numpy as np
import pylab as pl
import matplotlib.pyplot as plt

with open('file.log') as f:
    lines = f.readlines()
    x = [int(line.split(',')[0]) for line in lines]
    my_xticks = [line.split(',')[1] for line in lines]
    y = [int(line.split(',')[2]) for line in lines]
    z = [int(line.split(',')[3]) for line in lines]

plt.xticks(x, my_xticks[0], visible=True, rotation="horizontal")
plt.xticks(x, my_xticks[-1], visible=True, rotation="horizontal")

plt.plot (x,z)
plt.plot (x,z)
plt.plot(x, y)


plt.show()

谢谢!

1 个答案:

答案 0 :(得分:0)

使用x-ticks,您可以提供一个列表。所以你可以这样做:

plt.xticks([my_xticks[0], my_xticks[-1]], visible=True, rotation="horizontal")

顺便提一下,您可以使用以下方式获取原始刻度:

my_xticks = ax.get_xticks()

其中ax是您的Axes个实例。您甚至可以提供自己的价值观:

plt.xticks(
          [my_xticks[0], my_xticks[-1]], 
          ['{:.2}'.format(my_xticks[0]), '{:.2}'.format(my_xticks[-1])]
           visible=True, rotation="horizontal")

等。你可以看出这是多么容易概括......

请记住,刻度标签指的是图中的特定Axes。理想情况下你应该这样做:

`ax.set_xticks(..)`