Matplotlib xtick ytick

时间:2017-09-15 02:03:01

标签: python matplotlib

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轴刻度标签的右移。

如何通过点(1,1),(2,2),...,(24,24)制作直线并固定x轴标签移位?

Plot generated by the code above

我已经分别针对nthreadsxticks尝试了plt.xticks()plt.yticks()的所有其他排列,并且没有一个结果看起来与我想要的一样接近

1 个答案:

答案 0 :(得分:2)

当您在没有设置x数组的情况下绘制matplotlib时,请使用[0,1,2,3,4,5,6,7]之类的默认列表。因此,你没有直线。您必须指定数组xy。在你的情况下,他们必须是相同的。

如果要放置标签,请使用此示例中的位置和标签。要移动当前轴(xlim)的坐标系集ylimplt.gca()

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