رسم نمودارهای جذاب با Pygal
یکی از جذابیت های پایتون، وجود کتابخانه های متنوعی است که هر کدام ویژگی های جالبی را ایجاد می کنند. کتابخانه Pygal به شما امکان ایجاد نمودارهای متنوعی را می دهد که می توانید آنها را به صورت پویا در قالب فایل های Svg ذخیره نمایید. نکته جالب دیگر پشتیبانی این کتابخانه از زبان فارسی است.
در مثال این پست، اطلاعات مربوط به 5 سهم از یاهو فراخوانی شده و بر اساس روش سرمایهگذاری مبتنی بر عوامل (Factor Investing) نمایش داده می شوند.
سورس برنامه در پست بعدی ارسال می شود.
#نمودار
#pygal
#Factor_Investing
پایتون برای مالی
🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
یکی از جذابیت های پایتون، وجود کتابخانه های متنوعی است که هر کدام ویژگی های جالبی را ایجاد می کنند. کتابخانه Pygal به شما امکان ایجاد نمودارهای متنوعی را می دهد که می توانید آنها را به صورت پویا در قالب فایل های Svg ذخیره نمایید. نکته جالب دیگر پشتیبانی این کتابخانه از زبان فارسی است.
در مثال این پست، اطلاعات مربوط به 5 سهم از یاهو فراخوانی شده و بر اساس روش سرمایهگذاری مبتنی بر عوامل (Factor Investing) نمایش داده می شوند.
سورس برنامه در پست بعدی ارسال می شود.
#نمودار
#pygal
#Factor_Investing
پایتون برای مالی
🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
❤21
رسم نمودارهای جذاب با Pygal- بخش دوم
#نمودار
#pygal
پایتون برای مالی
🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
#code by @python4finance
import yfinance as yf
import pandas as pd
import numpy as np
import pygal
from IPython.display import SVG
tickers = ['AAPL', 'MSFT', 'GOOGL', 'TSLA', 'AMZN']
factors = ['Value (P/E)', 'Momentum (6M)', 'Quality (ROE)']
data = []
for ticker in tickers:
stock = yf.Ticker(ticker)
info = stock.info
hist = stock.history(period='6mo')
try:
pe = info['trailingPE']
roe = info['returnOnEquity']
momentum = (hist['Close'].iloc[-1] - hist['Close'].iloc[0]) / hist['Close'].iloc[0]
data.append({'Ticker': ticker, 'P/E': pe, 'Momentum': momentum, 'ROE': roe})
except:
print(f"Error on reading data")
df = pd.DataFrame(data)
# Normalizing
for col in ['P/E', 'Momentum', 'ROE']:
col_norm = col + '_norm'
values = df[col].values
values = np.nan_to_num(values, nan=np.nanmean(values))
df[col_norm] = (values - np.min(values)) / (np.max(values) - np.min(values))
radar_chart = pygal.Radar(fill=True)
radar_chart.title = 'Factor Investing مقایسه سهام مختلف بر اساس'
radar_chart.x_labels = factors
for i, row in df.iterrows():
radar_chart.add(row['Ticker'], [1 - row['P/E_norm'], row['Momentum_norm'], row['ROE_norm']])
radar_chart.render_to_file('multi_factor_radar.svg')
SVG(filename='multi_factor_radar.svg')
#نمودار
#pygal
پایتون برای مالی
🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
❤15