matplotlib坐标轴取消科学计数法

本文介绍了一种简单方法,如何在使用Matplotlib绘制图表时,通过在plt.show()之前添加plt.ticklabel_format()函数,避免坐标轴自动显示科学计数法,使数值更易读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在画图的时候,坐标轴有时候会自动以科学计数法表示,看起来很不舒服。

关于取消坐标轴的科学计数法,网上有各种各样的方式,其中最常见的是ax.操作。

咱就说有没有不整那么复杂的?其实就一句话的事。

在plt.show()前面加上这句话就搞定了。

plt.ticklabel_format(useOffset=False, style='plain')

LSR原数值非常大,可是在最后呈现出来的图表中y轴数值特别的小,我觉得y轴数值标注不准确,请帮助我改进这个代码: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()
06-12
你可以将 y 轴标签设为 'LSR (10亿)',表示单位为 10 亿。同时可以适当调整 y 轴的刻度,使得整个图形更加直观。修改后的代码如下所示: ``` 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.yticks([0, 50000000000, 100000000000, 150000000000, 200000000000], ['0', '50', '100', '150', '200']) plt.ticklabel_format(style='plain', axis='y') # 取消科学计数法表示 plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文字体设置-黑体 plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题 plt.xlabel('年份') plt.ylabel('LSR (10亿)') plt.legend() plt.show() ``` 运行修改后的代码,即可得到修改后的图形。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值