2017-11-19 12 views
1

現在、x軸の範囲が0から1.3e7までのプロットを作成しています。次のように私はこれをプロットしています:Matplotlibの軸ラベルが科学指数を同じ行に移動する

plt.errorbar(num_vertices,sampled_ave_path_average,yerr=sampled_ave_path_stdev,fmt='.',markersize='1',capsize=2,capthick=2) 
plt.xlabel('Number of vertices') 
plt.ylabel('Average shortest path length') 
plt.xlim(0,1.3*10**7) 
plt.savefig('path_length_vs_N.eps', bbox_inches='tight') 
plt.savefig('path_length_vs_N.png', bbox_inches='tight') 
plt.close() 

これはx軸の目盛りラベルは、私が希望するものである科学表記法であるプロットを生成します。私は1e7(下の赤い丸で囲んだ部分)を他のラベルと同じ行に移動することが可能かどうか疑問に思っていましたか? (私はこれが他の値の指数についての混乱を引き起こす可能性が実現しています。)

output of plot routine showing location of scientific exponent marker

答えて

1

まず、次の質問を見てもよい:

最初のものが可能性のある代替方法かもしれません(あなたが想像されたソリューション "migh指数に関する混乱の原因となる ")。 2つ目の方法は、カラーバーを使用することですが、可能な解決方法を指摘する可能性があります。

オフセットテキストの位置をxtickラベルに合わせて変更するには、次の方法があります。

import matplotlib.pyplot as plt 
import numpy as np 
import types 

x = np.linspace(1e7, 9e7) 
y = 1-np.exp(-np.linspace(0,5)) 
fig, ax = plt.subplots() 
ax.plot(x,y) 


pad = plt.rcParams["xtick.major.size"] + plt.rcParams["xtick.major.pad"] 
def bottom_offset(self, bboxes, bboxes2): 
    bottom = self.axes.bbox.ymin 
    self.offsetText.set(va="top", ha="left") 
    oy = bottom - pad * self.figure.dpi/72.0 
    self.offsetText.set_position((1, oy)) 

ax.xaxis._update_offset_text_position = types.MethodType(bottom_offset, ax.xaxis) 

plt.show() 

enter image description here

関連する問題