并列柱状图:
包括坐标轴,标题,图例显示,字体格式及大小,柱状图的符号填充,图片的显示及保存等设置
import numpy as np
from pylab import mpl
import matplotlib.pyplot as plt
# 优化Matplotlib显示乱码的问题
mpl.rcParams['font.sans-serif'] = ['FangSong']
mpl.rcParams['axes.unicode_minus'] = False
# 第一组数据 CK+ Data
ck_OriginalFace = [, , ] # 这里放数据,数组形式,如[1,2,3]
ck_OriginalFace_feature = [, , ]
ck_EigenFace = [, , ]
ck_EigenFace_feature = [, , ]
# 第二组数据 JAFFE Data
OriginalFace = [, , ]
OriginalFace_feature = [, , ]
EigenFace = [, , ]
EigenFace_feature = [, , ]
total_width, n = 0.8, 4 # 柱状图总宽度,有几组数据
width = total_width / n # 单个柱状图的宽度
x1 = x - width / 4 # 第一组数据柱状图横坐标起始位置
x2 = x1 + width # 第二组数据柱状图横坐标起始位置
x3 = x2 + width
x4 = x3 + width
marks = ["o","X","+","*","0"]
plt.subplot(1,2,1)
plt.bar(x1, ck_OriginalFace, width=width, edgecolor='k', hatch='**',color='w', label='原始脸', align='edge') # 水平柱状图
plt.bar(x3, ck_OriginalFace_feature, width=width, edgecolor='k', hatch='xxx', color='w',label='原始脸特征', align='edge')
plt.bar(x2, ck_EigenFace, width=width, edgecolor='k', hatch='++', color='w', label='情绪脸', align='edge') # 并列柱状图
plt.bar(x4, ck_EigenFace_feature, width=width, edgecolor='k', hatch='//', color='w', label='情绪脸特征', align='edge')
plt.xticks(x+2*width, duibi_name) # 设置柱状图坐标轴文字
plt.xlabel('CK+数据集', fontproperties='FangSong', x=0.5, y=-0.2, fontsize=18)
plt.ylabel('得分', fontproperties='FangSong', fontsize=18)
plt.tick_params(labelsize=17)
plt.legend(loc="upper left")# lower right 显示图例
plt.subplot(1,2,2)
plt.bar(x1, OriginalFace, width=width, edgecolor='k', hatch='**',color='w', label='原始脸', align='edge') # 水平柱状图
plt.bar(x2, OriginalFace_feature, width=width, edgecolor='k', hatch='xxx',color='w',label='原始脸特征',align='edge')
plt.bar(x3, EigenFace, width=width, edgecolor='k', hatch='++',color='w', label='情绪脸',align='edge') # 并列柱状图
plt.bar(x4, EigenFace_feature, width=width, edgecolor='k', hatch='//',color='w', label='情绪脸特征',align='edge')
plt.xticks(x+2*width, duibi_name) # 设置柱状图坐标轴文字
plt.xlabel('JAFFE数据集', fontproperties='FangSong', x=0.5, y=-0.2, fontsize=18)
plt.ylabel('得分', fontproperties='FangSong', fontsize=18)
plt.tick_params(labelsize=17)
plt.legend(loc="upper left")# lower right 显示图例
plt.suptitle('聚类评估指标', fontsize=18) # 总标题
plt.savefig(r"D:\Python\pythonProject\lianxi\data_process\Plot\duibi-km.jpg", dpi=450, bbox_inches='tight')
plt.show()
参考链接:
https://blog.csdn.net/R_house/article/details/109225430