gpt4 book ai didi

python - 创建年度返回直方图

转载 作者:行者123 更新时间:2023-12-03 19:13:52 24 4
gpt4 key购买 nike

我正在尝试完成一个项目的任务,我的任务是创建道琼斯历史返回的年度返回直方图。我在下面上传了任务的图片和我的进度。我此时遇到的问题是,我找不到一种方法来分隔直方图中的年份,因为它在任务中显示,我不知道如何修改 y 轴和图例以显示信息显示在第一张图片中。

任何帮助表示赞赏

What I am trying to makeMy progress so far

这是我的代码:

# Importing packages
import numpy as np

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import datetime

#setting the order
order=[-60,-50,-40,-30,-20,-10,
0,10,20,30,40,50,60,70]

#getting the data
dow_jones_returns = pd.read_csv('data/dow-jones-by-year-historical-annual-returns (2).csv')

dow_jones=pd.DataFrame(data=dow_jones_returns)

dow_jones['date']=pd.to_datetime(dow_jones['date'])

dow_jones['date']=pd.DatetimeIndex(dow_jones['date']).year

pd.to_numeric(dow_jones.value)

up_to_2019=dow_jones.iloc[0:99]

lastyear= dow_jones.iloc[-1]

#ploting the histogram
fig = plt.figure()

up_to_2019['value'].plot.hist(bins = order)
plt.show()

最佳答案

嗨,只是给你一些进一步的方向,
关于文本框
文本框看起来像是包含 DataFrame.describe() 的汇总统计信息。 + 一些额外的。您可以通过使用 .text() 的组合来创建文本框和 .subplot()我找到了 this guide对于在图中创建文本框非常有用

由于我们没有数据,
这里是 伪代码 :

import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
textstr = str(up_to_2019['value'].describe())

ax.hist(up_to_2019['value'], bins = order)

# these are matplotlib.patch.Patch properties
props = dict(boxstyle='round', facecolor='wheat', alpha=0.5)

# place a text box in upper left in axes coords
ax.text(0.05, 0.95, textstr, transform=ax.transAxes, fontsize=10,
verticalalignment='top', bbox=props)

plt.show()

关于 y 轴:
1) 以下是设置正确标签的方法: plt.ylabel("Number of Observations\n(Probability in%)")2)然后添加刻度线 plt.yticks(np.arange(1,27))
关于垃圾箱内的标签
这是相当棘手的一种选择,但绝对不建议通过 .text() 也包含标签。方法。我不知道它是否有帮助,但 here是你如何在 R 中做到这一点。
这两个链接也可能有帮助:
  • how-to-add-a-text-into-a-rectangle
  • Change color for the patches in a hist

  • 显然是在打电话 plt.hist()有三个返回值,其中之一称为补丁。您可以迭代补丁,即更改它们的颜色(请参阅上面的链接),但是我无法弄清楚如何向它们添加文本。
    import numpy as np
    import matplotlib.mlab as mlab
    import matplotlib.pyplot as plt
    x = [21,22,23,4,5,6,77,8,9,10,31,32,33,34,35,36,37,18,49,50,100]
    num_bins = 5
    n, bins, patches = plt.hist(x, num_bins, facecolor='blue', alpha=0.5)
    for i,pat in enumerate(patches):
    pat.set_test("Test") #this doesnt work sadly

    关于python - 创建年度返回直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61272667/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com