gs = fig3.add_gridspec(3, 3)'Figure' object has no attribute 'add_gridspec'
时间: 2023-12-01 12:02:19 浏览: 176
This error indicates that the 'add_gridspec' method is not available for the 'Figure' object. This may be due to using an older version of matplotlib that does not support this method. Try updating matplotlib to the latest version or using an alternative method to create grids in the figure.
相关问题
import numpy as np import matplotlib.pyplot as plt import matplotlib.gridspec as gridspec plt.rcParams["font.sans-serif"] = ["SimHei"] x_month = np.array(['1月', '2月', '3月', '4月', '5月', '6月']) y_sales = np.array([2150, 1050, 1560, 1480, 1530, 1490]) x_citys = np.array(['北京', '上海', '广州', '深圳', '浙江', '山东']) y_sale_count = np.array([83775, 62860, 59176, 64205, 48671, 39968]) # 创建画布和布局 fig = plt.figure(constrained_layout=True) gs = fig.add_gridspec(2, 2) ax_one = fig.add_subplot(gs[0, :]) ax_two = fig.add_subplot(gs[1, 0]) ax_thr = fig.add_subplot(gs[1, 1])优化为饼状图
这段代码导入了numpy、matplotlib.pyplot、matplotlib.gridspec模块,并将字体设置为“SimHei”。然后使用numpy创建了一个月份数组x_month和一个销售额数组y_sales,以及一个城市名数组x_citys和一个销售统计数量数组y_sale_count。
import numpy as np import matplotlib.pyplot as plt import matplotlib.gridspec as gridspec plt.rcParams[“font.sans-serif”]=[“SimHei”] x_month=np.array([‘1月’,‘2月’,‘3月’,‘4月’,‘5月’,‘6月’]) y_sales=np.array([2150,1080,1392,1479,1323,1490]) x_citys=np.array([‘北京’,‘上海’,‘广州’,‘深圳’,‘浙江’,‘重庆’]) y_sale_count=np.array([87564,65784,54538,34807,45688,67499]) fig=plt.figure(constrained_layout=True) gs=fig.add_gridspec(2,2) ax_one=fig.add_subplot(gs[0,:]) ax_two=fig.add_subplot(gs[1,0]) ax_thr=fig.add_subplot(gs[1,1]) ax_one.bar(x_month,y_sales,width=0.5,color=’#3299CC’) ax_one.set_title(‘2020080603051’) ax_one.set_ylabel(‘销售额’) ax_two.plot(x_citys,y_sale_count,‘m–o’,ms=8) ax_two.set_title(‘分公司销量’) ax_two.set_ylabel(‘销量’) ax_thr.stackplot(x_citys,y_sale_count,color=’#9999FF’) ax_thr.set_title(‘分公司销量’) ax_thr.set_ylabel(‘销量’) plt.show()修改这段代码至python可运行
蓝色’) ax_one.set_title(‘月销售额’) ax_one.set_xlabel(‘月份’) ax_one.set_ylabel(‘销售额(元)’) ax_two.pie(y_sale_count,labels=x_citys,autopct=’%.2f%%’,colors=[‘green’,‘red’,‘orange’,‘purple’,‘blue’,‘yellow’]) ax_two.set_title(‘地区销售占比’) ax_thr.plot(x_month,y_sales,’ro-’) ax_thr.set_title(‘月销售额趋势’) ax_thr.set_xlabel(‘月份’) ax_thr.set_ylabel(‘销售额(元)’) plt.show()
这段代码主要实现了画出一个2x2的画布,其中第一个子图用柱状图表示月销售额,第二个子图用饼图表示各地区销售额占比,第三个子图用折线图表示月销售额趋势。同时,为了避免中文乱码问题,设置了字体为SimHei。最后使用plt.show()来展示整个画布。
阅读全文