plt.subplots修改figsize
时间: 2023-11-06 22:20:28 浏览: 92
在使用plt.subplots函数来创建子图时,可以通过设置figsize参数来修改整个图像的尺寸。例如,可以使用以下代码来修改figsize:
fig, ax = plt.subplots(figsize=(12, 4))
其中,参数figsize=(12, 4)表示图像的宽度为12英寸,高度为4英寸。通过修改这个参数,可以调整子图的大小。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [python绘制子图技巧——plt.subplot和plt.subplots、及坐标轴修改](https://blog.csdn.net/m0_67392010/article/details/125241307)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
相关问题
fig, ax = plt.subplots(figsize=(15, 12)) ax.barh([data["Gender"]=="Female"]data["Income"], width=0.7, label="Female") ax.barh([data["Gender"]=="Male"]data["Income"], width=0.7, label="Male") ax.set_xlabel("Income") ax.set_yticks(data.index) ax.set_yticklabels(data["MaritalStatus"]) ax.legend() plt.show()
这段代码是用来画一个水平条形图,展示不同婚姻状况下男性和女性的收入情况。其中,fig, ax = plt.subplots(figsize=(15, 12)) 表示创建一个大小为 15x12 的画布和一个坐标轴对象。接着,ax.barh([data["Gender"]=="Female"]data["Income"], width=0.7, label="Female") 表示画出女性收入的条形图,[data["Gender"]=="Female"]是一个布尔型的索引,用于筛选出性别为女性的数据,然后取出他们的收入数据。同理,ax.barh([data["Gender"]=="Male"]data["Income"], width=0.7, label="Male") 表示画出男性收入的条形图。然后,ax.set_xlabel("Income") 和 ax.set_yticks(data.index) 分别设置 x 轴标签和 y 轴刻度值。ax.set_yticklabels(data["MaritalStatus"]) 表示将婚姻状况作为 y 轴标签。最后,ax.legend() 用于显示图例,plt.show() 用于展示图像。但是需要注意的是,这段代码存在语法错误,需要修改。
帮我改进这个代码,展示各行业LSR平均值比例饼图:#3 # 定义一个函数,用于提取行业代码的第一个字母 def get_industry(x): return x[0] # 提取行业代码的第一个字母并添加到新的一列 df['industry'] = df['行业代码'].apply(get_industry) # 计算各行业的占比 industry_counts = df['industry'].value_counts() industry_pcts = industry_counts / industry_counts.sum() # 设置 figure 的大小 fig, ax = plt.subplots(figsize=(10, 10)) # 绘制饼图 plt.pie(industry_pcts, labels=industry_pcts.index, autopct='%1.1f%%') plt.axis('equal') plt.title('各行业') plt.show()
这段代码看起来已经很不错了,我只能提供一些细微的建议来改进它:
1. 首先,这段代码中的行业代码列的名称为'行业代码',建议更改为英文名称,例如'industry_code',以使代码更易读。
2. 在这个函数中,我们只需要返回第一个字母,但是现在它返回了整个字符串,因此建议更改函数的名称为'get_first_letter',并修改其实现方式,只返回第一个字母,如下所示:
def get_first_letter(x):
return x[0]
3. 这段代码中使用了matplotlib库绘制饼图,如果您使用的是Jupyter Notebook,则建议添加以下代码以使图表内联:
%matplotlib inline
4. 在绘制饼图之前,建议对行业占比数据进行排序,以使图表更易读。您可以使用以下代码:
industry_pcts = industry_counts / industry_counts.sum()
industry_pcts = industry_pcts.sort_values(ascending=False)
这将按降序对行业占比进行排序。
5. 最后,如果您希望图表更具可读性,建议添加图例。您可以使用以下代码:
plt.legend(title='Industries', loc='best')
它将为每个行业代码添加一个标签。您还可以使用其他参数自定义图例的字体大小、颜色等。
综上所述,这是改进后的代码:
# 定义一个函数,用于提取行业代码的第一个字母
def get_first_letter(x):
return x[0]
# 提取行业代码的第一个字母并添加到新的一列
df['industry'] = df['industry_code'].apply(get_first_letter)
# 计算各行业的占比并按降序排序
industry_counts = df['industry'].value_counts()
industry_pcts = industry_counts / industry_counts.sum()
industry_pcts = industry_pcts.sort_values(ascending=False)
# 设置 figure 的大小
fig, ax = plt.subplots(figsize=(10, 10))
# 绘制饼图
plt.pie(industry_pcts, labels=industry_pcts.index, autopct='%1.1f%%')
plt.axis('equal')
plt.title('各行业')
# 添加图例
plt.legend(title='Industries', loc='best')
# 显示图表
plt.show()
阅读全文