Python 以matplotlib-ytick间距绘制指数图

Python 以matplotlib-ytick间距绘制指数图,python,matplotlib,graphing,Python,Matplotlib,Graphing,我对matplotlib和绘图一般来说是相当陌生的,所以如果这个问题听起来微不足道,我很抱歉 我试图用下面的x和y值绘制一个折线图 x_值=[18,19,20,21,22,23,24] y_值=[6,14,39,124,553,1718,5524] 问题是,由于y_值是指数型的,因此无法在图上真正看到较低的值。我试着和yticks一起玩,但比例保持不变是否有任何方法来绘制此图,以便您可以看到所有值?我希望有类似于Ytick之间的固定间距或类似的东西 我当前的代码: import numpy as

我对matplotlib和绘图一般来说是相当陌生的,所以如果这个问题听起来微不足道,我很抱歉

我试图用下面的x和y值绘制一个折线图

x_值=[18,19,20,21,22,23,24]

y_值=[6,14,39,124,553,1718,5524]

问题是,由于
y_值是指数型的,因此无法在图上真正看到较低的值。我试着和yticks一起玩,但比例保持不变是否有任何方法来绘制此图,以便您可以看到所有值?我希望有类似于Ytick之间的固定间距或类似的东西

我当前的代码:

import numpy as np
import matplotlib.pyplot as plt

x_values = [18, 19, 20, 21, 22, 23, 24]
y_values = [6, 14, 39, 124, 553, 1718, 5524]

plt.plot(np.array(x_values), np.array(y_values))
plt.xticks(np.arange(18, 25, 1), ('18', '+19', '+20', '+21', '+22', '+23', '+24'))
plt.grid()
plt.show()


这是我的目标,但y轴比例更好。

也许你只是在找一个对数刻度

plt.plot(x_values, y_values)
plt.yscale("log")
plt.yticks(y_values, y_values)
plt.show()

也许你只是在找一个对数刻度

plt.plot(x_values, y_values)
plt.yscale("log")
plt.yticks(y_values, y_values)
plt.show()

您对此满意吗?它显示原始绘图,旁边是较低值的视图

import numpy as np
import matplotlib.pyplot as plt

x_values = [18, 19, 20, 21, 22, 23, 24]
y_values = [6, 14, 39, 124, 553, 1718, 5524]

plt1 = plt.subplot(121)
plt1.margins(0.05)
plt1.plot(np.array(x_values), np.array(y_values), 'k')
plt1.set_title("Original Graph")
plt1.grid()

plt2 = plt.subplot(122)
plt2.margins()
plt2.plot(np.array(x_values[:4]), np.array(y_values[:4]), 'r')
plt2.set_title("Zoom of Lower Values")
plt2.grid()
plt.show()

您对此满意吗?它显示原始绘图,旁边是较低值的视图

import numpy as np
import matplotlib.pyplot as plt

x_values = [18, 19, 20, 21, 22, 23, 24]
y_values = [6, 14, 39, 124, 553, 1718, 5524]

plt1 = plt.subplot(121)
plt1.margins(0.05)
plt1.plot(np.array(x_values), np.array(y_values), 'k')
plt1.set_title("Original Graph")
plt1.grid()

plt2 = plt.subplot(122)
plt2.margins()
plt2.plot(np.array(x_values[:4]), np.array(y_values[:4]), 'r')
plt2.set_title("Zoom of Lower Values")
plt2.grid()
plt.show()

谢谢,这正是我想要的。我以前确实试过对数缩放,但没有改变Ytick以匹配我的值,所以轴看起来很奇怪。谢谢,这就是我想要的。我以前确实尝试过对数缩放,但没有更改Ytick以匹配我的值,因此轴看起来非常奇怪。