当x的范围为0、0.001、0.01,...,1000时,如何手动拆分matplotlib散点图的x轴?

我正在尝试使用mathplotlib绘制散点图,以指示线性SVM算法上不同“ C”值(x轴)的精度变化(y轴)。问题是:

handleNameChange

由于值为“ 0.001、0.01、0.1、1”,因此该区域在图形上显示为极其狭窄且重叠。

这是我的代码:

C_values = [0,0.001,0.01,0.1,1,10,100,1000]

这是我得到的结果:

当x的范围为0、0.001、0.01,...,1000时,如何手动拆分matplotlib散点图的x轴?

任何帮助将不胜感激。谢谢!

true430 回答:当x的范围为0、0.001、0.01,...,1000时,如何手动拆分matplotlib散点图的x轴?

使用对数标度并且x值为0会带来问题,例如log(0) = -∞。 因此,最好省略零。一些示例代码:

from matplotlib import pyplot as plt

C_values = [0.001,0.01,0.1,1,10,100,1000]
svc_acc_scores = [0.3,0.4,0.6,0.7,0.8,0.8]

plt.figure()
plt.xlabel('C values')
plt.ylabel('Accuracy')
plt.scatter(C_values,svc_acc_scores)
plt.xscale('log')
plt.xticks([0.001,1000])
plt.show()

sample plot

本文链接:https://www.f2er.com/3129554.html

大家都在问