python绘图问题整理(论文绘图)
绘制的常规方案:
得到的图形:


如何显示中文,
从上图中,我们可以看出
plt.title("数据") 这一行代码本意是让图片显示标题的,
但是目前图片并没有显示出中文"数据",而是显示了两个框.
这里的原因是matplotlib默认是Unicode编码,默认不支持中文的.
所以需要解决编码的问题.
加入下面代码:
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

就可以正常显示数字.

上面的图例是竖着排列的,
如果数据的种类过多,可以进行横向的排列.
# 图例的再次设置,
#nloc,确定图例框的位置,这里选择3;
#bbox_to_anchor:的起始位置为(0.0,1.02),设置宽度为1,高度为0.2
#(但是这些值都是基于归一化坐标系)
#参数mode可以设置为None或者expand,当为expand时,图例框会水平的扩展至整个坐标轴区域。参数borderaxespad指定了坐标轴和图例边界之间的间距。
plt.legend(bbox_to_anchor=(0., 1.02, 1., 0.2), loc=0,
ncol=3, mode="expand", borderaxespad=0.)
ncol这里选择的是3,其实还有很多其他的选法,选择不同的数字,就会有不同的位置:

程序:
运行结果(看图例的变化):

参考:https://blog.csdn.net/u012735708/article/details/82114565
https://matplotlib.org/users/annotations.html#plotting-guide-annotation