在 logit x 轴上绘制水平线

时间:2021-02-25 09:28:02

标签: python matplotlib

我试图在具有 logit x-aixs 的图中绘制一条水平线。 问题是,这条线根本没有出现。如果我将 x 轴更改为“线性”或“对数”,则水平线会按预期显示。

我做错了什么,或者这不是故意的。我真的很想保持当前的 logit 比例。

这是说明问题的示例代码:

import matplotlib.pyplot as plt
import pandas as pd

x = [0.025, 0.017, 0.167, 0.375,
     0.241, 0.16, 0.192, 0.833,
     0.063, 0.016, 0.056, 0.052,
     0.047, 0.025, 0.057, 0.063,
     0.2, 0.273, 0.273, 0.051]

y = [158., 239., 18., 8., 29., 25., 26., 6., 48., 314., 54.,
     58., 316., 119., 87., 239., 25., 11., 11., 59.]

plt.scatter(x, y)
plt.hlines(20, 0, 1) # -> THIS LINE DOESNT SHOW UP IN THE PLOT
plt.yscale("log")
plt.xscale("logit")
plt.show()

import matplotlib.pyplot as plt
import pandas as pd

x = [0.025, 0.017, 0.167, 0.375,
     0.241, 0.16, 0.192, 0.833,
     0.063, 0.016, 0.056, 0.052,
     0.047, 0.025, 0.057, 0.063,
     0.2, 0.273, 0.273, 0.051]

y = [158., 239., 18., 8., 29., 25., 26., 6., 48., 314., 54.,
     58., 316., 119., 87., 239., 25., 11., 11., 59.]

plt.scatter(x, y)
plt.hlines(20, 0, 1) # -> CHANGING XSCALE TO LINEAR AND THE LINE APPEARS
plt.yscale("log")
plt.xscale("linear") # -> CHANGING XSCALE TO LINEAR AND THE LINE APPEARS
plt.show()

1 个答案:

答案 0 :(得分:0)

您可以使用 plt.plot() 手动创建线条

import matplotlib.pyplot as plt
import pandas as pd

x = [0.025, 0.017, 0.167, 0.375,
     0.241, 0.16, 0.192, 0.833,
     0.063, 0.016, 0.056, 0.052,
     0.047, 0.025, 0.057, 0.063,
     0.2, 0.273, 0.273, 0.051]

y = [158., 239., 18., 8., 29., 25., 26., 6., 48., 314., 54.,
     58., 316., 119., 87., 239., 25., 11., 11., 59.]

plt.scatter(x, y)
#plt.hlines(20, 0, 1) # -> THIS LINE DOESNT SHOW UP IN THE PLOT
plt.plot([min(x),max(x)],20)
plt.yscale("log")
plt.xscale("logit")
plt.show()