使用matplotlib生成图片,想要背景透明,而且图例部分也显示透明效果,找到了大概的设置方法,特此记录。
#=utf - 8编码 # matplotlib背景透明示例图 # python 3.5 进口numpy np 进口matplotlib。pyplot作为plt 从pylab进口mpl 进口scipy。统计数据作为统计数据 #设置中文字体 mpl.rcParams['字体。无衬线']=[' SimHei ') def autolabel(矩形): #附加一些文本标签 在矩形矩形: 身高=rect.get_height () #设置标注文字及位置 rect.get_width ax.text (rect.get_x() +()/2, 0.03 +高度,' %。4 f ' %身高、公顷='中心”,va=暗撞俊? #数据 testData=https://www.yisu.com/zixun/[(0.87, 0.40, 0.56), (0.97,0.50,0.33), (0.88,0.30,0.44), (0.25,0.23,0.17), (0.73,0.33,0.45)] N=3 宽=0.5 印第安纳州=np。不等(宽度、宽度* 6 * N,宽度* 6) 无花果,ax=plt.subplots () rectsTest1=ax。栏(印第安纳州(testData [0] [0], testData [0] [1], testData[0][2]),宽度,颜色=(0,0,1,1),edgecolor=(0, 0, 1, 1)) rectsTest2=ax。栏(印第安纳州+宽度,(testData [1] [0], testData [1] [1], testData[1][2]),宽度,颜色=(1 0 0 1),edgecolor=(1 0 0,1)) rectsTest3=ax。栏(印第安纳州+ 2 *宽度,(testData [2] [0], testData [2] [1], testData[2][2]),宽度,颜色=(0,1,0,1),edgecolor=(0, 1, 0, 1)) rectsTest4=ax。栏(印第安纳州+ 3 *宽度,(testData [3] [0], testData [3] [1], testData[3][2]),宽度,颜色=(1,0.6471,0,1),edgecolor=(1, 0.6471, 0,1)) rectsTest5=ax。栏(印第安纳州+ 4 *宽度,(testData [4] [0], testData [4] [1], testData[4][2]),宽度,颜色=(0.5804,0,0.8275,1),edgecolor=(0.5804、0、0.8275、1)) 斧子。set_xlim (0, - 9.5) 斧子。set_ylim (0, - 1.4) ax.set_ylabel(“数值”) ax.yaxis.grid(真正的) 斧子。set_xticks(印第安纳州+宽* 2.5) 斧子。set_xticklabels (“P”、“R”、“F”)) #设置图例 传说=ax。传奇((rectsTest1 rectsTest2、rectsTest3 rectsTest4, rectsTest5), (‘test1’,‘test2’,‘test3’,‘test4’,‘test5’)) ?legend.get_frame () frame.set_alpha (1) frame.set_facecolor(没有)#设置图例传奇背景透明 #给每个数据矩形标注数的值 autolabel (rectsTest1) autolabel (rectsTest2) autolabel (rectsTest3) autolabel (rectsTest4) autolabel (rectsTest5) plt.savefig (“C:/用户/XX/桌面/测试。png”,格式=png, bbox_inches='紧张的透明=True, dpi=600) # bbox_inches='紧张的图片边界空白紧致,背景透明 效
效果可能在网页上看不出来,但还是把图片贴上来吧。