Bu fayl Vikianbarda yerləşir

Fayl:Stock-indices-2020crash.svg

Vikipediya, azad ensiklopediya
Naviqasiyaya keç Axtarışa keç

Faylın orijinalı (SVG faylı, nominal olaraq 504 × 378 piksel, faylın ölçüsü: 79 KB)

Xülasə

İzah
English: Stock index chart at the 2020 stock market crash
Tarix
Mənbə Öz işi
Müəllif Geek3
SVG genesis
InfoField
 
The SVG code is valid.
 
This plot was created with Matplotlib.
Mənbə kodu
InfoField

Python code

#!/usr/bin/python3
# -*- coding: utf8 -*-

import csv
import datetime
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

class Stock:
    def __init__(self, name):
        self.data = self.get_csv(name)
        self.convert_types()
        self.filter_date(datetime.datetime(2020, 1, 1), datetime.datetime(2020, 4, 6))
    
    def get_csv(self, name):
        try:
            with open(name, 'r' ) as f:
                reader = csv.DictReader(f)
                return [line for line in reader]
        except FileNotFoundError as ex:
            print(ex)
            print('get data from', 'https://finance.yahoo.com/quote/DAX/history?p=DAX')
            exit()
    
    def convert_types(self):
        for il, l in enumerate(self.data):
            for k in l.keys():
                try:
                    if k == 'Date':
                        l[k] = datetime.datetime.strptime(l[k], '%Y-%m-%d')
                    else:
                        l[k] = float(l[k])
                except Exception:
                    del self.data[il]
    
    def filter_date(self, date, date2=None):
        self.data = [i for i in self.data if i['Date'] >= date]
        if date2 is not None:
            self.data = [i for i in self.data if i['Date'] <= date2]
    
    def get_dates(self):
        return [l['Date'] for l in self.data]
    
    def get_values(self):
        return np.array([float(l['Close']) for l in self.data])
    
    def get_values_norm(self):
        v = self.get_values()
        #vmean = np.mean([v for i, v in enumerate(v) if self.data[i]['Date'].month == 1])
        #return v / vmean
        return v / max(v)

# data is found on finance.yahoo.com
data_spx = Stock('^GSPC.csv')
data_DJI = Stock('^DJI.csv')
data_stoxx50e = Stock('^STOXX50E.csv')
data_DAX = Stock('^GDAXI.csv')

plt.figure(figsize=[5.6, 4.2])
ax = plt.gca()
ax.set_prop_cycle(color=['#0072bd', '#d95319', '#edb120', '#7e2f8e'])

plt.plot(data_spx.get_dates(), 100*data_spx.get_values_norm(), 'o-', ms=3, label='S&P 500')
plt.plot(data_DJI.get_dates(), 100*data_DJI.get_values_norm(), 'o-', ms=3, label='Dow Jones')
plt.plot(data_stoxx50e.get_dates(), 100*data_stoxx50e.get_values_norm(), 'o-', ms=3, label='EURO STOXX 50')
plt.plot(data_DAX.get_dates(), 100*data_DAX.get_values_norm(), 'o-', ms=3, label='DAX')

ax.xaxis.set_major_locator(mpl.dates.MonthLocator())
ax.xaxis.set_major_formatter(mpl.dates.DateFormatter("%Y-%m"))
ax.yaxis.set_major_formatter(mpl.ticker.FormatStrFormatter('%.0f%%'))

plt.axvline(datetime.datetime(2020, 3, 9), color='k')
ax.text(datetime.datetime(2020, 3, 9), 0.64, 'BMI', fontsize=11, ha='left', va='bottom',
    transform=mpl.transforms.blended_transform_factory(ax.transData, ax.transAxes))
ax.text(datetime.datetime(2020, 3, 16), 0.51, 'BMII', fontsize=11, ha='left', va='bottom',
    transform=mpl.transforms.blended_transform_factory(ax.transData, ax.transAxes))
plt.axvline(datetime.datetime(2020, 3, 16), color='k')

plt.xlabel('date')
plt.ylabel('value relative to 2020 maximum')
plt.grid(True)
plt.legend(loc='center left', framealpha=1, edgecolor='k', borderpad=0.7, borderaxespad=2)
plt.tight_layout()
plt.savefig('stock-indices-2020crash.svg')
plt.show()

Lisenziya

Mən, bu işin müəllif hüquqları sahibi, onu aşağıdakı lisenziyaya əsasən dərc edirəm:
w:az:Creative Commons
İstinad vermək bənzər paylaşma
This file is licensed under the Creative Commons Attribution-Share Alike 4.0 International license.
Siz heç bir məhdudiyyət olmadan:
  • paylaşa bilərsiniz – əsəri köçürə, paylaya və ötürə bilərsiniz
  • remiks edə bilərsiniz – əsəri adaptasiya edə bilərsiniz
Aşağıdakı şərtlərə əməl etməklə:
  • İstinad vermək – Müvafiq istinad verməli, lisenziyaya keçid əlavə etməli və dəyişikliklər edilib-edilmədiyini bildirməlisiniz . Siz bunu istənilən şəkildə edə bilərsiniz, lakin lisenziya verənin sizə şəxsən icazə verdiyini göstərən formada yox.
  • bənzər paylaşma – Əsəri remix edirsinizsə, dəyişdirirsinizsə və ya üzərində iş aparırsınızsa, öz töhfələrinizi orijinalda olduğu kimi eyni və ya uyğun lisenziya altında yayımlamalısınız.

Captions

Add a one-line explanation of what this file represents
Stock index chart at the 2020 stock market crash

Items portrayed in this file

təsvir edir

copyrighted ingilis

7 aprel 2020

media type ingilis

image/svg+xml

data size ingilis

80.890 Bayt

504 piksel

checksum ingilis

b636146ef452d3360b19d7e65d8fe1720c6933c8

Faylın tarixçəsi

Faylın əvvəlki versiyasını görmək üçün gün/tarix bölməsindəki tarixlərə klikləyin.

Tarix/VaxtMiniatürÖlçülərİstifadəçiŞərh
hal-hazırkı11:48, 7 aprel 202011:48, 7 aprel 2020 tarixindəki versiyanın miniatür görüntüsü504 × 378 (79 KB)Geek3Uploaded own work with UploadWizard

Aşağıdakı səhifə bu faylı istifadə edir:

Faylın qlobal istifadəsi

Bu fayl aşağıdakı vikilərdə istifadə olunur:

Metaməlumatlar