2017-09-19 31 views
-1

私はログファイルを解析してプロットを作成しています。x軸プロットの最初と最後のティックだけを表示する

X軸にすべてのラベルが必要なわけではありません。最初の1つ、最後の1つ、またはいくつかを特定のステップで表示したいと思います。

どうすればいいですか?最初の1つだけを表示することも、最後の1つだけを表示することもできます。

マイコード:

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

ありがとうございます!

+0

'plt.xticks([x.min()、x.max()])は何をしますか? – Jarad

+0

これは私に 'AttributeError: 'list'オブジェクトに属性 'min'がないというエラーを返します – tyon

答えて

0

x-ティックでは、リストを提供できます。だから、行うことができます。

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(..)` 
+0

私のxticksは実際に文字列であり、見ています:9/5/2017 8:47:15 AM もし私が' ValueError:浮動小数点数の無効なリテラル(浮動小数点型の場合は0〜255の整数) ():9/5/2017 8:47:15 AM' – tyon

関連する問題