这段代码以前是可以工作的,但是在创建了一个新环境之后,它停止了对该行的工作

plt.xticks(x, months, rotation=25,fontsize=8)

如果我 comments 这一行,那么在放置这一行之后,不会抛出错误

ValueError: The number of FixedLocator locations (5), usually from a call to set_ticks, does not match the number of ticklabels (12).

import numpy as np
import matplotlib.pyplot as plt

dataset = df
dfsize = dataset[df.columns[0]].size
x = []
for i in range(dfsize):
    x.append(i)

dataset.shape
# dataset.dropna(inplace=True)
dataset.columns.values
var = ""
for i in range(dataset.shape[1]):  ## 1 is for column, dataset.shape[1] calculate length of col

    y = dataset[dataset.columns[i]].values
    y = y.astype(float)
    y = y.reshape(-1, 1)
    y.shape
    from sklearn.impute import SimpleImputer

    missingvalues = SimpleImputer(missing_values=np.nan, strategy='mean', verbose=0)
    missingvalues = missingvalues.fit(y)
    y = missingvalues.transform(y[:, :])

    from sklearn.preprocessing import LabelEncoder, OneHotEncoder
    from sklearn.compose import ColumnTransformer

    labelencoder_x = LabelEncoder()
    x = labelencoder_x.fit_transform(x)

    from scipy.interpolate import *

    p1 = np.polyfit(x, y, 1)
    # from matplotlib.pyplot import *
    import matplotlib
    matplotlib.use('Agg')
    import matplotlib.pyplot as plt

    plt.figure()
    plt.xticks(x, months, rotation=25,fontsize=8)
    #print("-->"+dataset.columns[i])
    plt.suptitle(dataset.columns[i] + ' (xyz)', fontsize=10)
    plt.xlabel('month', fontsize=8)
    plt.ylabel('Age', fontsize=10)
    plt.plot(x, y, y, 'r-', linestyle='-', marker='o')
    plt.plot(x, np.polyval(p1, x), 'b-')
    y = y.round(decimals=2)
    for a, b in zip(x, y):
        plt.text(a, b, str(b), bbox=dict(facecolor='yellow', alpha=0.9))

    plt.grid()
    # plt.pause(2)
    # plt.grid()

    var = var + "," + dataset.columns[i]
    plt.savefig(path3 + dataset.columns[i] + '_1.png')
    plt.close(path3 + dataset.columns[i] + '_1.png')
    plt.close('all')

推荐答案

我还偶然发现了这个错误,并发现让你的xtick_标签和xtick列表长度相等是可行的.所以在你的情况下:

def month(num):
  # returns month name based on month number


num_elements = len(x)
X_Tick_List = []
X_Tick_Label_List=[]

for item in range (0,num_elements):
    X_Tick_List.append(x[item])
    X_Tick_Label_List.append(month(item+1))

plt.xticks(ticks=X_Tick_List,labels=X_Tick_LabeL_List, rotation=25,fontsize=8)
       

Python-3.x相关问答推荐

"安装serial vs安装psyserial header,"""

在Python中从列创建新行

以编程方式关闭jupyterlab内核

我没有';无法理解此TemplateDoesNotExist错误

使用 iloc 或 loc 对多列进行过滤

Python 舍入数字不准确

为什么不能用格式字符串 '-' 绘制点?

我应该如何调整我的变量,以便如果有任何单词符合其中的条件,程序会将其附加到新列表中?

在 python f-string 中使用 \u

当参数名称与 typing.Protocol 中定义的名称不同时发生 mypy 错误

如何在 Telethon 中向机器人发送发送表情符号

如何从形状汇总图中提取实际值

python tkInter 浏览文件夹按钮

保存 StandardScaler() 模型以用于新数据集

pandas 中 df.reindex() 和 df.set_index() 方法的区别

if 语句中冒号的语法错误

如何在 Python 中计算两个包含字符串的列表的 Jaccard 相似度?

在python中,如果一个函数没有return语句,它会返回什么?

将行附加到 DataFrame 的最快和最有效的方法是什么?

是否可以在每个路由的基础上限制 Flask POST 数据大小?