美文网首页
mpld3显示到html出现的问题

mpld3显示到html出现的问题

作者: 躁动思维 | 来源:发表于2018-03-07 17:24 被阅读0次

    最近在用sklearn做数据聚类,用到了k-means算法,在使用mpld3把matplotlib显示到html上的时候出现了点问题,各种百度无果,还是用google吧。

    问题是关于mpld3使用fig_to_html方法出现TypeError: array([1.]) is not JSON serializable错误的问题解决办法,一个大神把这个问题解决了,但现在官方版本没有发布解决的办法,只能手动给mpld3打补丁,方法如下

    python -m pip install "git+https://github.com/javadba/mpld3@display_fix"

    亲测有效

    import numpy as np  # 科学计算包

    import matplotlib.pyplot as plt  # python画图包

    import mpld3

    from sklearn.cluster import KMeans  # 导入K-means算法包

    from sklearn.datasets import make_blobs

    from sklearn import metrics

    from sklearn.datasets.samples_generator import make_blobs

    fig = plt.figure()

    X, y = make_blobs(n_samples=1000, n_features=2, centers=[[-1, -1], [0, 0], [1, 1], [2, 2]],                   cluster_std=[0.4, 0.2, 0.2, 0.2], random_state=9)  # 生成测试数据

    for index, k in enumerate((2, 3, 4, 5)):    

        plt.subplot(2, 2, index + 1)    

        y_pred = KMeans(n_clusters=k, random_state=9).fit_predict(X)  # 预测值    

        score = metrics.calinski_harabaz_score(X, y_pred)    

        plt.scatter(X[:, 0], X[:, 1], c=y_pred, s=10, edgecolor='k')    

        plt.text(.99, .01, ('k=%d, score: %.2f' % (k, score)),  # 文本注释,标注关键信息                              transform=plt.gca().transAxes, size=10, horizontalalignment='right')

        # plt.show()

        html = mpld3.fig_to_html(fig)

        plt.close()

        return html

    好了,就到这里

    相关文章

      网友评论

          本文标题:mpld3显示到html出现的问题

          本文链接:https://www.haomeiwen.com/subject/qaukyttx.html