在X轴Matplotlib中显示小数点的问题

2024-09-28 23:25:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我对这个图表有意见

代码下方:

axex=[0.001, 0.01, 0.1, 1.0, 10.0, 100.0, 1000.0]
axey=[0.15686275, 0.28808446, 0.53242836, 1.        , 1.        ,
       1.        , 1.        ]

import matplotlib.pyplot as plt
import matplotlib.ticker as mtick
#x = [0.00001,0.001,0.01,0.1,0.5,1,5]
plt.figure(figsize=(10,12))
plt.plot(axex,axey ,'o-', linestyle='--', label='Results')
plt.title("Show Test")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.legend(loc='best')
plt.show()

所发生的是“axex”的值和线没有正确显示在图表中, 它不在axex刻度中显示(0.001、0.01、0.1、1.0、10.0、100.0、1000.0)

如果在绘图上不使用axex运行图形,我们可以得到正确的线图,但是x轴的比例没有正确显示。你知道吗

我们怎样才能解决这个问题?你知道吗


Tags: 代码importmatplotlibas图表plt意见figure
1条回答
网友
1楼 · 发布于 2024-09-28 23:25:45

如果xy是两个数值列表,则plot(x,y)将绘制所有坐标(x[0], y[0])(x[1], y[1]),…,依此类推,默认情况下,它将只使用线性轴。plot(x,y)而不是根据xy中存储的数据的数值来改变轴的比例。你知道吗

获得对数标度的一种方法是使用pyplot.xscale('log')和/或等效于y标度yscale('log')。你知道吗

import matplotlib.pyplot as plt

axex=[0.001, 0.01, 0.1, 1.0, 10.0, 100.0, 1000.0]
axey=[0.15686275, 0.28808446, 0.53242836, 1., 1., 1., 1.]

plt.figure()
plt.plot(axex, axey, linestyle=' ', label='Results')
plt.xscale('log') # Set log scale on X-axis
plt.title("Show Test")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.show()

enter image description here

相关问题 更多 >