【问题标题】:matplotlib - values between range are plotted outside of the plotmatplotlib - 范围之间的值绘制在绘图之外
【发布时间】:2021-10-11 11:43:11
【问题描述】:

我有以下 y、x 值:

1.0 0.06
1.0 0.09
1.0 0.12
1.0 0.16
1.0 0.19
1.0 0.22
1.0 0.25
1.0 0.28
1.0 0.31
1.0 0.34
1.0 0.38
1.0 0.41
1.0 0.44
1.0 0.47
1.0 0.5
1.0 0.53
1.0 0.56
0.95 0.56
0.95 0.59
0.95 0.62
0.95 0.66
0.96 0.69
0.96 0.72
0.96 0.75
0.96 0.78
0.93 0.78
0.93 0.81
0.93 0.84
0.93 0.88
0.94 0.91
0.94 0.94
0.91 0.94

我想要的只是将这些 Y、X 值绘制在一个刻度从 0 到 1 且步长为 0.1 的图中。

这是我尝试过的:

import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()

ax.grid()

ax.set_xticks([0,.1,.2,.3, .4, .5, .6, .7, .8, .9, 1])
ax.set_yticks([0,.1,.2,.3, .4, .5, .6, .7, .8, .9, 1])

ax.plot(r, p)

plt.show()

这就是我得到的:

image link

【问题讨论】:

  • 我怀疑您的数据被读取为字符串而不是浮点数,因此被 matplotlib 绘制为分类数据。首先要检查:rp 读入后的数据类型是什么?如果它们是字符串,请在绘图前尝试转换为浮点数。

标签: python numpy matplotlib


【解决方案1】:

这就是我按原样运行您的代码时得到的结果:

import matplotlib.pyplot as plt
import numpy as np
arr = np.array([[1.0, 0.06],
[1.0, 0.09],
[1.0, 0.12],
[1.0, 0.16],
[1.0, 0.19],
[1.0, 0.22],
[1.0, 0.25],
[1.0, 0.28],
[1.0, 0.31],
[1.0, 0.34],
[1.0, 0.38],
[1.0, 0.41],
[1.0, 0.44],
[1.0, 0.47],
[1.0, 0.5],
[1.0, 0.53],
[1.0, 0.56],
[0.95, 0.56],
[0.95, 0.59],
[0.95, 0.62],
[0.95, 0.66],
[0.96, 0.69],
[0.96, 0.72],
[0.96, 0.75],
[0.96, 0.78],
[0.93, 0.78],
[0.93, 0.81],
[0.93, 0.84],
[0.93, 0.88],
[0.94, 0.91],
[0.94, 0.94],
[0.91, 0.94],])

fig, ax = plt.subplots()

ax.grid()

ax.plot(arr[:, 0], arr[:, 1])

ax.set_xticks([0,.1,.2,.3, .4, .5, .6, .7, .8, .9, 1])
ax.set_yticks([0,.1,.2,.3, .4, .5, .6, .7, .8, .9, 1])

plt.show()

输出:

回答: 您在显示的代码之外的某个地方有错误 也许您绘制的值不是您在问题中显示的值。

【讨论】:

    猜你喜欢
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多