如何消除Shell运行时显示的警告MatplotlibDeprecationWarning?

发布于 2022-09-11 20:33:06 字数 2073 浏览 10 评论 0

为了方便大家观察只截取了关键部分的代码块。

程序运行时没有错误,只是每次脚本运行到这个函数的时候

from bisect import bisect_right
import networkx as nx
import matplotlib.pyplot as plt
import matplotlib as mpl
import random
import time
def show(G, List, city):       
    startcolor = '#00ffff'   #蓝绿色
    midcolor = '#ffff00'     #绿色
    endcolor = '#ff0000'    #红色
    cmap2 = **mpl**.colors.LinearSegmentedColormap.from_list('own2',[startcolor,midcolor,endcolor])   # extra arguments are N=256, gamma=1.0
    **mpl**.cm.register_cmap(cmap=cmap2)
         
    edges,p = zip(*nx.get_edge_attributes(G,'people').items())     #zip(*)拆开tuple提取属性
    nx.draw_networkx_nodes(G,G.pos,node_size=25, node_color = 'g')
    nx.draw_networkx_edges(G, G.pos, edge_color=p, width=2,
                                       alpha=0.8,edge_cmap=**mpl**.cm.get_cmap('own2'))

    print(nx.get_edge_attributes(G,'people'))   #客流量
        
    vmin = min(p)                               #颜色映射范围
    vmax = max(p)



    sm = plt.cm.ScalarMappable(cmap=**mpl**.cm.get_cmap('own2'), norm=plt.Normalize(vmin=vmin, vmax=vmax))        #显示 colorbar
    sm.set_array([])
    plt.colorbar(sm)    
    plt.style.use('dark_background')
    plt.axis('off')
    plt.show()  

会显示如下警告:

MatplotlibDeprecationWarning: 
The iterable function was deprecated in Matplotlib 3.1 and will be removed in 3.3. Use np.iterable instead.
  if not cb.iterable(width):
MatplotlibDeprecationWarning: 
The iterable function was deprecated in Matplotlib 3.1 and will be removed in 3.3. Use np.iterable instead.
  and cb.iterable(edge_color) \
MatplotlibDeprecationWarning: 
The iterable function was deprecated in Matplotlib 3.1 and will be removed in 3.3. Use np.iterable instead.
  for c in edge_color]):

警告里要我用np.iterable但是这似乎是numpy的函数,我检查了每一个使用过mpl模块的地方,不明白哪里是可迭代函数,而且没有标注行数以至于我不知道要改动哪一个地方。

因为这是我毕业设计里出现的情况,而Shell运行时出现这一大段警告影响美观,请问各位大佬应该如何修改程序,或者更改配置不显示警告呢?

第一次在思否提问,如果有不规范的地方望见谅!
图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暮凉 2022-09-18 20:33:06

可以指定忽略warning类型,也可以忽略所有的。

import warnings
import matplotlib.cbook
warnings.filterwarnings("ignore",category=matplotlib.cbook.mplDeprecation)
×眷恋的温暖 2022-09-18 20:33:06

请将你的
clipboard.png
文件中对应位置的 cb.iterable 改为 np.iterable 再试

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文