Add lessons page and members page
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,40 @@
|
||||
import streamlit as st
|
||||
from webpages import code_editor as ce
|
||||
from wordcloud import WordCloud
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
|
||||
def pythonx_lesson2():
|
||||
st.title("Lesson 2: Create WordClouds in Python")
|
||||
st.header(":one: What is WordClouds")
|
||||
st.markdown("""
|
||||
A word cloud (also known as a tag cloud) is a visual representation of the frequency of words in a given text. The more frequently a word appears in the text, the larger it appears in the word cloud. It is often used as a way to visualize and analyze large amounts of text data, such as social media posts, news articles, and books.
|
||||
""")
|
||||
|
||||
st.image("./images/lesson2-wordcloud.png")
|
||||
st.markdown("""
|
||||
Typically, a word cloud is created by taking a piece of text and analyzing the **frequency** of each word. The words are then arranged in a visual format, such as a cloud shape, with the most frequent words appearing in the largest font size. The words are often arranged in random positions within the cloud, with the exception of a few words which are positioned in the center or given emphasis.
|
||||
""")
|
||||
st.header(":two: Using wordcloud Package to generate wordcloud image")
|
||||
st.markdown("""
|
||||
In this example we will learn how to use external package in Python to complete task in a easy way.
|
||||
|
||||
A Python package is a collection of related code files (called modules) that we can use to help with specific tasks, like math, working with data, or creating graphics. These files are organized in folders, making it easier to manage and reuse the code. We can install a package and then use its functions in wer own Python programs. Popular Python packages include NumPy, pandas, and matplotlib.
|
||||
""")
|
||||
|
||||
st.markdown("""
|
||||
We can put this text into the textbox, then click Analyze, it will generate a wordcloud image for the input text.
|
||||
```
|
||||
Python is a programming language that lets you work quickly and integrate systems more effectively. Python is powerful and easy to learn.
|
||||
|
||||
```
|
||||
""")
|
||||
text = st.text_area("Please input text to analyze")
|
||||
|
||||
if st.button("Analyze"):
|
||||
# Create a WordCloud object
|
||||
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)
|
||||
fig, ax = plt.subplots()
|
||||
ax.imshow(wordcloud, interpolation='bilinear')
|
||||
plt.axis("off")
|
||||
st.pyplot(fig)
|
||||
|
||||
@@ -1,6 +1,77 @@
|
||||
from datetime import date, datetime
|
||||
import streamlit as st
|
||||
import yfinance as yf
|
||||
import plotly.express as px
|
||||
from webpages import code_editor as ce
|
||||
|
||||
def pythonx_lesson3():
|
||||
st.title("Lesson 3: Create WordClouds in Python")
|
||||
|
||||
st.title("Lesson 3: Collecting Stock Data Through API")
|
||||
st.header(":one: What is API")
|
||||
st.markdown(
|
||||
"""
|
||||
API stands for **Application Programming Interface**. It is a set of protocols, routines, and tools for building software and applications. An API defines the way by which an external client can request services and access data from an operating system, library, or application. It provides a communication interface for two or more systems to exchange data and interact with each other. APIs are commonly used to enable developers to create new applications and services that integrate with existing systems or to extract data from websites and services for use in other applications.
|
||||
""")
|
||||
st.image("./images/lesson3-api.png")
|
||||
|
||||
st.header(":two: Using yfinance Library(Package) to Extract Stock Data")
|
||||
st.markdown("""
|
||||
[yfinance](https://github.com/ranaroussi/yfinance) is a Python library that allows you to easily download and analyze financial data from Yahoo Finance.
|
||||
|
||||
It provides a convenient way to access stock market data and perform various operations with it such as
|
||||
- retrieving historical data
|
||||
- getting real-time data
|
||||
- obtaining financial ratios and metrics, and more.
|
||||
|
||||
It provides a simple and efficient way to work with stock data in Python, without the need to manually scrape data from websites or manually download data from financial sources.
|
||||
""")
|
||||
|
||||
st.header(":three: Application Demo")
|
||||
# print text formatted by HTML
|
||||
st.markdown(
|
||||
"<h1 style='text-align:center; color:red;'> Sample Stock Price App. </h1>",
|
||||
unsafe_allow_html=True)
|
||||
|
||||
st.write(
|
||||
'We will use the code learned from previous lecture to build an online application for tracing stock price'
|
||||
)
|
||||
|
||||
# print text in markdown
|
||||
st.markdown("## **Check Stock Information**")
|
||||
|
||||
# a list of stock names
|
||||
stock_names = ['MSFT', 'AAPL', 'AMZN', 'GOOGL']
|
||||
# select a stock to check
|
||||
target_stock = st.selectbox('Select a stock to check', options=stock_names)
|
||||
|
||||
st.markdown("## **Check Stock Price History**")
|
||||
|
||||
# start date of the stock infomation, default is the first day of year 2024
|
||||
start_date = st.date_input('Start Date', datetime(2024, 1, 1))
|
||||
# end date of the stock infomation, default is date of today
|
||||
end_date = st.date_input("End Date")
|
||||
|
||||
# get today date
|
||||
today = date.today()
|
||||
if st.button('Submit'):
|
||||
# check valid date
|
||||
if start_date > today or end_date > today:
|
||||
st.write("## **Please select a valid date period.**")
|
||||
else:
|
||||
# download the stock data based on stock name, start/end date
|
||||
data = yf.download(target_stock, start_date, end_date)
|
||||
# show a progress bar
|
||||
with st.spinner(text='In progress'):
|
||||
|
||||
fig = px.line(data,
|
||||
x=data.index,
|
||||
y=['Open', 'High', 'Low', 'Close'],
|
||||
title=target_stock + " Stock Price",
|
||||
labels={
|
||||
"value": "Stock Price ($)",
|
||||
"variable": "Price Type"
|
||||
})
|
||||
st.write(fig)
|
||||
st.success('Done')
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user