python中用matplotlib画图遇到的一些问题及解决
作者:追风的Zoom
这篇文章主要介绍了python中用matplotlib画图遇到的一些问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
python用matplotlib画图遇到的一些问题
1.用plt画直方图时
在hist这句话报错
ValueError: max must be larger than min in range parameter.
n, bins, patches = plt.hist(x,num_bins, facecolor=plt.rcParams['axes.color_cycle'][2], alpha=0.5,edgecolor='black',linestyle='-',linewidth=1)
后来发现是由于读取的csv文件中存在NaN值造成的。
因为之前对它进行过增加数据行数,但是恢复原值后没有彻底删除掉所增加的行,而只是把值删除了,所以会报错。
2.plt保存图片时
生成的svg图片下边少了一条,显示不完全,x轴的label只显示了一半:
解决方法:
plt.savefig('D:\\weights_a.svg',format='svg' ,bbox_inches='tight') #保存为svg格式,再用inkscape转为矢量图emf后插入word中 bbox使保存图片时没白边还能显示完全
加bbox这个参数即可。
3.import时报错
/home/heyintao/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:7: UserWarning:This call to matplotlib.use() has no effect because the backend has alreadybeen chosen; matplotlib.use() must be called before pylab, matplotlib.pyplot,or matplotlib.backends is imported for the first time.
源代码为:
import matplotlib.pyplot as plt import matplotlib matplotlib.use('TkAgg')
修改为: 即可。
import matplotlib matplotlib.use('TkAgg') import matplotlib.pyplot as plt
python画直方图报错
max must be larger than min in range parameter
使用plt.show()画直方图,报错为max must be larger than min in range parameter。
不妨把空值去掉试试。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。