Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在不均匀的绘图中正确显示XTICK?_Python_Matplotlib - Fatal编程技术网

Python 如何在不均匀的绘图中正确显示XTICK?

Python 如何在不均匀的绘图中正确显示XTICK?,python,matplotlib,Python,Matplotlib,我正在尝试使用matplotlib绘制x轴上的不均匀绘图。但是x记号没有显示在正确的位置。这是我上传的图像的python代码。x记号显示在图像的左下角,而不是每个数据点下 import numpy as np import matplotlib.pyplot as plt ticks = [0.0369, 11.58, 13.41, 13.78, 15.2609, 24.9, 26.7, 61.65] xi = list(range(len(ticks))) rmse_before_wi

我正在尝试使用matplotlib绘制x轴上的不均匀绘图。但是x记号没有显示在正确的位置。这是我上传的图像的python代码。x记号显示在图像的左下角,而不是每个数据点下

import numpy as np 
import matplotlib.pyplot as plt 

ticks = [0.0369, 11.58, 13.41, 13.78, 15.2609, 24.9, 26.7, 61.65]
xi = list(range(len(ticks)))

rmse_before_without_cm = ([0, 5.6290,  6.5244, 7.7890, 6.0990, 11.1103, 20.1758, 30.4631])
std_error_rmse_before_without_cm = np.array([0, 0, 0, 0,  0,  0, 0, 0])

rmse_before_with_cm = np.array([0, 4.4034, 4.4712, 3.7395,  3.7687, 7.2956, 2.8387, 19.4628])
std_error_rmse_before_with_cm = np.array([0, 0, 0, 0, 0, 0, 0, 0])

X_max = 62 
X_var = ticks
L = len(X_var) # number of x values

Y_var_1 = rmse_before_without_cm 
Y_var_err1 = std_error_rmse_before_without_cm 

Y_var_2 = rmse_before_with_cm 
Y_var_err2 = std_error_rmse_before_with_cm

plt.rcParams["figure.figsize"] = [6.4, 4.8]
plt.rcParams['axes.linewidth'] = 2


plt.errorbar(X_var,Y_var_1,Y_var_err1,linestyle='None',markersize = 8,\
             marker = '+', capsize = 2, color = 'magenta', label = 'RMSE Before without Joined Cloud Mask')

plt.errorbar(X_var,Y_var_2,Y_var_err2,linestyle='None',markersize = 8,\
             marker = '^', capsize = 2, color = 'black', label = 'RMSE Before with Joined Cloud Mask')

FS = 18 
FS2 = 16
plt.xlabel('Cloud Cover $\%$', size=FS)
plt.ylabel('RMSE', size=FS)
plt.title('RMSE vs Cloud Cover $\%$', size=FS)

plt.yticks(fontsize = FS - 2) 
plt.xticks(xi, ticks)
plt.legend(fontsize = FS2-2) 
plt.show()
plt.xticks(xi,ticks)
更改为
plt.xticks(ticks)

您可能需要格式化字体等以获得可读性


您应该使用plt.xticks(滴答声)而不是plt.xticks(xi,滴答声),请参阅可能还需要添加plt.xticks(滴答声,旋转=45)以使滴答声不重叠/Juat我需要的!我还修改了绘图以使其更具可读性:)