作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码:
import pandas as pd
from pandas import DataFrame as df
import matplotlib
from pandas_datareader import data as web
import matplotlib.pyplot as plt
import datetime
import yfinance as yf
import matplotlib.ticker as mtick
from matplotlib.ticker import (MultipleLocator, FormatStrFormatter,
AutoMinorLocator)
import currency
import warnings
warnings.filterwarnings("ignore")
start = datetime.date(2000,1,1)
end = datetime.date.today()
stock = 'goog'
fig, ax = plt.subplots(dpi=300, figsize =(8,4) )
data = web.DataReader(stock, 'yahoo', start, end)
data['Close'].plot()
ax.tick_params(axis='y', colors='midnightblue')
ax.tick_params(axis='x', colors="k")
pg = yf.Ticker(stock)
# sn = pg.info['shoName']
sn = pg.info['shortName']
b = pg.info['currency']
c = currency.symbol(f"{b}")
ax.set_ylabel(f"Price ({pg.info['currency']})")
ax.xaxis.grid(False, which='minor')
ax.yaxis.set_major_formatter('${x:1.2f}')
ax.margins(x=0)
# plt.savefig(f"{sn} {end.strftime('%d - %b%Y')}", bbox_inches='tight', dpi = 500)
print(sn)
print('datetime date =', start)
plt.show()
print()
我面临的问题是
ax.yaxis.set_major_formatter('${x:1.2f}')
.我需要得到一个 f 字符串来评估
c
.这将给出任何国家的货币,而不是使用 $ 符号。但是它似乎没有评估 f-string,你能建议任何可能的替代方案吗?
最佳答案
tick string formatter需要一个带有 x
的格式字符串(和可选 pos
):
The field used for the tick value must be labeled
x
and the field used for the tick position must be labeledpos
.
c
但不是
x
, 所以:
c
使用格式字符串:ax.yaxis.set_major_formatter(c + '{x:1.2f}')
f
),其中 x
的大括号被转义( c
的单大括号, x
的双大括号):ax.yaxis.set_major_formatter(f'{c}{{x:1.2f}}')
关于python - yaxis.set_major_formatter 中的 f 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69065509/
我正在尝试使用 set_major_formatter 格式化 matplotlib 图表上的 y 轴。绘图正确生成,但 ax.yaxis.set_major_formatter() 抛出一些奇怪的错
我有以下代码: import pandas as pd from pandas import DataFrame as df import matplotlib from pandas_datarea
我是 matplotlib 的新手。我从 here 复制了简单 pyqt-matplotlib 示例的代码,并更改了 class PlotCanvas 的 plot() 以制作值(value)时间图表
我有一个 Pandas 数据框,我正在尝试绘制两列的对比图。但问题是我的 xtick 标签显示得很精确。如何缩写(我的 X 轴值是元组)? fig = plt.figure(figsize=(13,1
我是一名优秀的程序员,十分优秀!