下面是一个Python程序,它执行以下操作:
- 对treasury.gov进行API调用以检索数据
- 将数据存储在Pandas框架中
- 绘制数据
import requests
import pandas as pd
import matplotlib.pyplot as plt
page_size = 10000
url = 'https://api.fiscaldata.treasury.gov/services/api/fiscal_service/v2/accounting/od/debt_to_penny'
url_params = f'?page[size]={page_size}'
response = requests.get(url + url_params)
result_json = response.json()
df = pd.DataFrame(result_json['data'])
df['record_date'] = pd.to_datetime(df['record_date'])
rows = df[df['debt_held_public_amt'] != 'null']
rows['debt_held_public_amt'] = pd.to_numeric(rows['debt_held_public_amt'])
plt.ion()
rows.plot(x='record_date', y='debt_held_public_amt', kind='line', rot=90)
字符串
这是我得到的结果图表:
的数据
提问
debt_held_public_amt
是美元:
的
将y轴格式化为数万亿美元的好方法是什么?
2条答案
按热度按时间vngu2lb81#
下面是一个使用
FuncFormatter
的方法。这种方法避免了为万亿值使用额外的列。
字符串
的数据
fslejnso2#
我环顾四周,想找一个看起来不错的人,我在维基百科上找到了this graph。
我决定这么做。
首先,我将金额转换为一个数字。我发现您执行此转换的代码对我不起作用-它创建了一个SettingWithCopy警告。
字符串
接下来,我做了一个单位转换,并设置刻度格式,在每个数字周围放上'$ T'。
型
参见matplotlib文档中的Dollar ticks。