python繪圖問題整理(論文繪圖)
繪制的常規(guī)方案:
得到的圖形:


如何顯示中文,
從上圖中,我們可以看出
plt.title("數(shù)據(jù)")? 這一行代碼本意是讓圖片顯示標(biāo)題的,
但是目前圖片并沒有顯示出中文"數(shù)據(jù)",而是顯示了兩個(gè)框.
這里的原因是matplotlib默認(rèn)是Unicode編碼,默認(rèn)不支持中文的.
所以需要解決編碼的問題.
加入下面代碼:
plt.rcParams['font.sans-serif']=['SimHei'] #用來(lái)正常顯示中文標(biāo)簽??
plt.rcParams['axes.unicode_minus']=False? ?#用來(lái)正常顯示負(fù)號(hào)

就可以正常顯示數(shù)字.

上面的圖例是豎著排列的,
如果數(shù)據(jù)的種類過(guò)多,可以進(jìn)行橫向的排列.
# 圖例的再次設(shè)置,
#nloc,確定圖例框的位置,這里選擇3;
#bbox_to_anchor:的起始位置為(0.0,1.02),設(shè)置寬度為1,高度為0.2
#(但是這些值都是基于歸一化坐標(biāo)系)
#參數(shù)mode可以設(shè)置為None或者expand,當(dāng)為expand時(shí),圖例框會(huì)水平的擴(kuò)展至整個(gè)坐標(biāo)軸區(qū)域。參數(shù)borderaxespad指定了坐標(biāo)軸和圖例邊界之間的間距。
plt.legend(bbox_to_anchor=(0., 1.02, 1., 0.2), loc=0,
? ? ? ?ncol=3, mode="expand", borderaxespad=0.)
ncol這里選擇的是3,其實(shí)還有很多其他的選法,選擇不同的數(shù)字,就會(huì)有不同的位置:

程序:
運(yùn)行結(jié)果(看圖例的變化):

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