2017-09-15 9 views
0
from matplotlib.lines import Line2D 
import numpy as np 

fig = plt.figure(figsize=(6,6)) 

plt.plot([1, 2, 4, 8, 12, 16, 20, 24], color='black', marker=None) 

labels = ['1', '2', '4', '8', '12', '16', '20', '24'] 
xticks = [1,2,3,4,5,6,7,8] 
nthreads = [1,2,4,8,12,16,20,24] 

plt.xticks(xticks, labels) 
plt.yticks(nthreads, labels) 

plt.show() 

私はf(x)= xのグラフを作成しようとしていますが、線の曲がりを取り除くことはできません。また、x軸のティックラベルの右シフトもあります。Matplotlib xtick ytick

ポイント(1,1)、(2,2)、...、(24,24)を通る直線を作成し、x軸ラベルの移動を固定するにはどうすればよいですか?

Plot generated by the code above

Iは、それぞれ、plt.xticks()plt.yticks()ためnthreadsxticksの他のすべての順列を試してみた、と結果のどれも私が欲しいものに近い探す必要はありません。

答えて

2

x array matplotlibを設定せずにプロットすると、[0,1,2,3,4,5,6,7]のようなデフォルトリストが使用されます。したがって、直線は得られません。配列xyの両方を指定する必要があります。あなたの場合、彼らは同じでなければなりません。

ラベルを配置する場合は、この例のように位置とラベルを使用します。現在の軸(plt.gca())の座標系をxlimylimに移動します。

from matplotlib.lines import Line2D 
import matplotlib.pyplot as plt 
import numpy as np 
# plot y=x 
fig = plt.figure(figsize=(6,6)) 
x = [1, 2, 4, 8, 12, 16, 20, 24] 
plt.plot(x,x, color='black', marker=None) 
# put labels for all ticks 
labels = np.arange(1,25,1) 
plt.xticks(labels, labels) 
plt.yticks(labels, labels) 
# set limits of axis 
ax = plt.gca() 
ax.set_xlim([1,24]) 
ax.set_ylim([1,24]) 

plt.show() 

enter image description here

関連する問題