【发布时间】:2021-01-29 04:16:20
【问题描述】:
我无法从我的 matplotlib 图表的 y 轴上删除科学记数法。 (我想显示变量中保存的原始 str 或浮点数,如果我使用 plt.yaxis.set_major_formatter(ScalarFormatter(useOffset=False)) 我得到一个属性错误:'matplotlib.pyplot' 没有属性'yaxis'。 也累 plt.ticklabel_format(useOffset=False, style='plain'),什么也没做。 (也没有错误)
from binance.client import Client
import time, os, csv, datetime
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import matplotlib as mpl
from matplotlib.ticker import ScalarFormatter
client = Client(apikey, apisecret)
mpl.rcParams['toolbar'] = 'None'
fig = plt.figure(figsize=(4,3))
plt.style.use('ggplot')
plt.rcParams['ytick.right'] = plt.rcParams['ytick.labelright'] = True
plt.rcParams['ytick.left'] = plt.rcParams['ytick.labelleft'] = False
x_vars = []
y_vars = []
def animate(i):
global x_vars
global y_vars
if len(x_vars) > 30:
x_vars = x_vars[-30:]
y_vars = y_vars[-30:]
else:
pass
current_time = client.get_server_time()
current_price = client.get_symbol_ticker(symbol="XRPBTC")
trstime = current_time["serverTime"] / 1000
time = datetime.datetime.fromtimestamp(int(trstime)).strftime('%M:%S')
x_vars.append(str(time))
y_vars.append(float(current_price["price"]))
plt.cla()
plt.plot(x_vars, y_vars)
plt.xticks(rotation = 45)
ani = animation.FuncAnimation(fig, animate, interval=500)
plt.tight_layout()
plt.show()
【问题讨论】:
-
也许是
plt.gca().yaxis.set_major_formatter(ScalarFormatter(useOffset=False))? yaxis 属性指的是轴对象,而 plt 更等价于图形对象; gca 代表“获取当前轴”。 -
谢谢,错误不再出现,但我仍然得到科学记数法。 :(
标签: python matplotlib