pandas - Matplotlib 中带十进制数的对数刻度
问题描述
我同时使用 panda 和 Matplotlib,并有一个基于 2 次方的 x 刻度。因此,我很想使用对数刻度,但想保留十进制数而不是科学记数法。
该代码部分如下所示:
df_list[count].plot(ax=axes[count], xticks=[16, 32, 64], logx=True, yticks=np.arange(0.4, 1.1, 0.1), title=lang_list[count], legend=None)
所以我使用 xticks 作为刻度,使用 lox=True 作为对数刻度。不幸的是,我的体重秤现在有标签:1.6x10^1、3.2x10^1、6.4x10^1
有什么聪明的解决方法吗?
解决方案
使用一些随机数据只是为了说明,您可以执行以下操作:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
df = pd.DataFrame({'Data': np.arange(1,1000)})
fig, ax = plt.subplots()
df['Data'].plot()
plt.xscale('log', base=2) # This way you don't need to set ticks manually
ax.xaxis.set_major_formatter(ticker.ScalarFormatter())
plt.ticklabel_format(axis='x', style='plain')
plt.show()
我已经使用该plt.xscale
命令自动设置 x 轴的刻度,但是如果您手动设置它们,这应该也可以。输出如下
推荐阅读
- openshift - Openshift CronJob 在概览屏幕上可见
- php - 是否可以在 CakePHP 3 中使用具有可包含行为的 find('list')?
- java - 如何检测不止一次的点击?
- java - HashMap 的 put 和 add 的区别
- swift - 为什么无法触发 String.publisher?
- hive - 当 Hive 服务重新启动时,Hive Table 的独占锁不会自动释放
- grpc - 具有多线程客户端的 gRPC 双向流处理
- mongodb - 数组大小 gt 0 的匹配操作在聚合 MongoDB 中不起作用
- javascript - 悬停在标记上时不要更改鼠标图标
- python - 如何在 Python 中使用 matplotlib 优雅地绘制大量子图?