详细解释以下代码:#2 import matplotlib.pyplot as plt # 定义一个函数,用于将实际控制人性质分类为国有和非国有 def gov_or_not(x): gov_list = [1100, 2000, 2100, 2120] if x in gov_list: return '国有' else: return '非国有' # 将实际控制人性质进行分类 df['ownership'] = df['实际控制人性质'].apply(gov_or_not) # 按照企业性质和年份进行分组,计算LSR的均值 lsr_mean = df.groupby(['ownership', '年份'])['LSR'].mean().reset_index() # 绘制散点图和折线图 plt.scatter(lsr_mean[lsr_mean['ownership'] == '国有']['年份'], lsr_mean[lsr_mean['ownership'] == '国有']['LSR'], label='国有企业') plt.plot(lsr_mean[lsr_mean['ownership'] == '国有']['年份'], lsr_mean[lsr_mean['ownership'] == '国有']['LSR'], linestyle='-', color='blue') plt.scatter(lsr_mean[lsr_mean['ownership'] == '非国有']['年份'], lsr_mean[lsr_mean['ownership'] == '非国有']['LSR'], label='非国有企业') plt.plot(lsr_mean[lsr_mean['ownership'] == '非国有']['年份'], lsr_mean[lsr_mean['ownership'] == '非国有']['LSR'], linestyle='-', color='green') plt.xticks(range(2008, 2022, 1)) plt.ylim(0, 200000000000) # 设置y轴范围 # 使用科学计数法表示 y 轴的数值 plt.ticklabel_format(style='sci', axis='y', scilimits=(0, 0)) plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文字体设置-黑体 plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题 plt.xlabel('年份') plt.ylabel('LSR') plt.legend() plt.show()
时间: 2023-09-09 09:12:45 浏览: 88
Matplotlib.pyplot 三维绘图的实现示例
这段代码的作用是绘制一个散点图和折线图,来展示不同企业性质(国有和非国有)在不同年份下的 LSR(资产负债率)均值的变化。
首先,代码导入了 matplotlib 库,并将其重命名为 plt,以便在后续使用时更方便。接着,代码定义了一个名为 gov_or_not 的函数,其作用与上一个问题中的相同。
代码接着将实际控制人性质进行分类,并将分类结果存储在新的一列 "ownership" 中。
然后,代码使用 groupby() 函数按照企业性质和年份进行分组,并计算 LSR 的均值,并将结果存储在 lsr_mean 变量中。
接下来,代码绘制了两组散点图和折线图,分别表示国有企业和非国有企业在不同年份下的 LSR 均值。其中,scatter() 函数用于绘制散点图,plot() 函数用于绘制折线图。代码中的 plt.xticks() 函数用于设置 x 轴的刻度,plt.ylim() 函数用于设置 y 轴的范围,plt.ticklabel_format() 函数用于使用科学计数法表示 y 轴的数值,plt.rcParams[] 用于设置中文字体和解决保存图像时负号 '-' 显示为方块的问题。
最后,代码用 xlabel() 和 ylabel() 函数分别设置 x 轴和 y 轴的标签,用 legend() 函数添加图例,并通过 show() 函数展示图像。
阅读全文