pyplot.xlim()を引数無しで呼び出すと、現状の値を返してくれる… 2015-11-07
figure は図全体、axes はその内部に用意される座標軸です。グリッド上に規則正しくグラフを配置する場合 subplot メソッドを使います。自由にグラフを配置する場合 axes メソッドを使います。GridSpecを使うと、グリッド上で変則的な配置が行えます。
2軸グラフは使い方によっては、わかりにくくなり誤解を招くことがございます。 以下のような工夫をし、理解しやすいグラフを目指しましょう。 1. matplotlibを用いたグラフを作成した際に、y軸の目盛りが表示されずに困っています。以下のようなコードを用いて、y軸がログスケールになるようなグラフを作りたいのですがグラフを表示してみるとy軸の目盛りが何も表示されません。 plot ( [ 3 , 1 , 4 , 1 , 5 , 9 , 2 , 6 , 5 ] ) plt . x軸とy軸のスケールを一致させる. 横縦軸共に長さのことが多いです。 軸の単位が縦横で違っても、アスペクト比で印象が変わってきますよね。 plt.axes().set_aspect('equal') アスペクト比を変えるとsavefigのときに白いとこが増えちゃいます。 その解決策 yscale ( "log" ) # y軸を対数目盛に plt . x軸のラベルの重なりを解消する. pythonで4x2のsubplotで、x軸は全て共通化、y軸は0列と1列、2列と3列をそれぞれ行ごとで分けて共通化したいです。shareyを用いて列ごと、行ごとの共通化は調べれましたが、特定の軸の指定方法が分かりませんでした。最初に軸を宣言したあとに、特定の軸のみ共通化することは可能でしょうか。
次にX軸名、Y軸名を表示してみましょう。 %matplotlib notebook from matplotlib import pyplot as plt y_value = [1, 2, 4, 8, 16, 32, 64, 128, 256, 1028] x_value = range(1, len(y_value)+1) plt.plot(x_value, y_value) plt.title("Test Graph", {"fontsize": 20}) plt.xlabel("Numbers") plt.ylabel("Value") plt.show() 実行結果 matplotlyb.pyplot で y軸ラベルの位置を揃える 結果図はこちら matplotlib.pyplot でグラフを2つ縦に並べる方法は他のページを参照のこと。 ここでは、意外とむずかしい、縦軸の位置調整について書く。 軸の設定¶ 対数目盛を使いたい場合は plt.xscale() , plt.yscale() を使います。 #!/usr/bin/env python # -*- coding: utf-8 -*- import matplotlib.pyplot as plt plt . Axes.set_xlim: x 軸方向の表示範囲を指定する。 pyplot.ylim: y 軸方向の表示範囲を取得または指定する。 Axes.set_ylim: y 軸方向の表示範囲を指定する。 Axes.get_xlim: x 軸方向の表示範囲を取得する。 Axes.get_ylim: y 軸方向の表示範囲を取得する。
重要な数値を左軸 … import numpy as np import matplotlib.pyplot as plt def f(t): return np.exp(-t) * np.cos(2*np.pi*t) x = np.arange(0.0, 5.0, 0.05) plt.plot(x, f(x)) plt.xlabel('x-hoge') plt.ylabel('y-hoge') plt.title('IAtLeX') plt.show() 計算結果. x軸のラベルの重なりを解消する実用的な方法は、主に以下の2つです。 x軸のラベルの文字を縦にする; x軸とy軸を入れ替える; それでは2つの方法について、1つずつ見ていきましょう。 x軸のラベルの文字を縦にする
y 軸を対数スケールに設定する。 import matplotlib.pyplot as plt import numpy as np x = np.arange(1, 6) y = np.random.randint(50, 100, 5) # 棒グラフを作成する。 fig, axes = plt.subplots(1, 1, figsize=(4, 4)) axes.bar(x, y, log= True) # y 軸を対数スケールに設定する。 plt.show() 今度は、軸ラベルを回転させて描画を行います。 fig, ax = plt.subplots() ax.plot(c_df["datetime"], c_df["C1"]) labels = ax.get_xticklabels() plt.setp(labels, rotation=45, fontsize=10); 軸ラベルを45度回転させて、重ならないように表示することができました。 解説