如何将 x 轴移动一位以从 1 而不是 0 开始?
How do I shift the x-axis over by one to start at 1 instead of 0?
如何开始在 x 轴位置 1 而不是 0 处绘制我的值?我看到的所有解决方案都非常复杂,我想我一定是忽略了一种简单的方法来指定它。
import matplotlib.pyplot as plt
def plot_vals(vals, RANGE):
plt.grid()
plt.xticks(RANGE)
plt.plot(vals, 'ro-')
RANGE = range(0, 11)
vals = [600.0, 222.3, 139.8, 114.0, 90.8, 80.8, 70.7, 62.8, 55.5, 47.5]
plot_vals(vals, RANGE)
生成此图
我想要的只是 x 到 运行 从 1 - 10(而不是 0 到 9),同时保留所有要绘制的值。
为确保这一点,您可以为 plt.plot
的 x
参数传递一个 range
,它从 1 到值的长度:
plt.plot(range(1, len(vals) + 1), vals)
这给出了这个:
为了以 1..10 的方式查看它们,我们使用具有相同范围的 plt.xticks
:
plt.xticks(range(1, len(vals) + 1))
得到
总体:
x_range = range(1, len(vals) + 1)
plt.plot(x_range, vals)
plt.xticks(x_range)
(OOP风格,最后两行的功能是ax.plot
和ax.set_xticks
)
您可以执行 plt.plot(RANGE, vals, 'ro-')
,其中第一个参数用于 x 轴,第二个参数用于 y 轴。但是 RANGE
和 vals
的长度必须相同,所以你需要 RANGE = range(1, 11)
.
此代码只需进行很少的更改即可工作。唯一的两个区别是将 RANGE 调用到 plt.plot 并以不同方式定义 RANGE 以避免引发错误:
import matplotlib.pyplot as plt
def plot_vals(vals, RANGE):
plt.grid()
plt.xticks(RANGE)
plt.plot(RANGE, vals, 'ro-')
RANGE = [i for i in range(1, 11)]
vals = [600.0, 222.3, 139.8, 114.0, 90.8, 80.8, 70.7, 62.8, 55.5, 47.5]
plot_vals(vals, RANGE)
这是一个可以根据需要构建的精简示例:
import matplotlib.pyplot as plt
plt.plot([1,2,3,4,5,6,7,8,9,10], [600.0, 222.3, 139.8, 114.0, 90.8, 80.8, 70.7, 62.8, 55.5, 47.5])
如何开始在 x 轴位置 1 而不是 0 处绘制我的值?我看到的所有解决方案都非常复杂,我想我一定是忽略了一种简单的方法来指定它。
import matplotlib.pyplot as plt
def plot_vals(vals, RANGE):
plt.grid()
plt.xticks(RANGE)
plt.plot(vals, 'ro-')
RANGE = range(0, 11)
vals = [600.0, 222.3, 139.8, 114.0, 90.8, 80.8, 70.7, 62.8, 55.5, 47.5]
plot_vals(vals, RANGE)
生成此图
我想要的只是 x 到 运行 从 1 - 10(而不是 0 到 9),同时保留所有要绘制的值。
为确保这一点,您可以为 plt.plot
的 x
参数传递一个 range
,它从 1 到值的长度:
plt.plot(range(1, len(vals) + 1), vals)
这给出了这个:
为了以 1..10 的方式查看它们,我们使用具有相同范围的 plt.xticks
:
plt.xticks(range(1, len(vals) + 1))
得到
总体:
x_range = range(1, len(vals) + 1)
plt.plot(x_range, vals)
plt.xticks(x_range)
(OOP风格,最后两行的功能是ax.plot
和ax.set_xticks
)
您可以执行 plt.plot(RANGE, vals, 'ro-')
,其中第一个参数用于 x 轴,第二个参数用于 y 轴。但是 RANGE
和 vals
的长度必须相同,所以你需要 RANGE = range(1, 11)
.
此代码只需进行很少的更改即可工作。唯一的两个区别是将 RANGE 调用到 plt.plot 并以不同方式定义 RANGE 以避免引发错误:
import matplotlib.pyplot as plt
def plot_vals(vals, RANGE):
plt.grid()
plt.xticks(RANGE)
plt.plot(RANGE, vals, 'ro-')
RANGE = [i for i in range(1, 11)]
vals = [600.0, 222.3, 139.8, 114.0, 90.8, 80.8, 70.7, 62.8, 55.5, 47.5]
plot_vals(vals, RANGE)
这是一个可以根据需要构建的精简示例:
import matplotlib.pyplot as plt
plt.plot([1,2,3,4,5,6,7,8,9,10], [600.0, 222.3, 139.8, 114.0, 90.8, 80.8, 70.7, 62.8, 55.5, 47.5])