pip install seaborn
sns.lineplot(x=[1, 3, 2, 4], y=[4, 3, 2, 1])
sns.barplot(x=["Amy","Bob","Cat","Dog"],y=[0.7,0.2,0.1,0.05])
sns.barplot(x=["Amy","Bob","Cat","Dog"],y=[0.7,0.2,0.1,0.05])
plt.title("BarPlot")
plt.show()
sns.barplot(x=["Amy","Bob","Cat","Dog"],y=[0.7,0.2,0.1,0.05])
plt.title("BarPlot")
plt.xlabel("X Label")
plt.ylabel("Y Label")
plt.show()
sns.lineplot(x=[1, 3, 2, 4], y=[4, 3, 2, 1])
plt.title("Line Plot")
plt.ylim(0,10)
plt.show()
# 크기를 먼저 지정해주어야 함
plt.figure(figsize = (20, 10))
sns.lineplot(x=[1, 3, 2, 4], y=[4, 3, 2, 1])
plt.title("Line Plot")
plt.ylim(0,10)
plt.show()
1. 웹 스크래핑에 필요한 라이브러리 불러오기
from selenium import webdriver
from selenium.webdriver import ActionChains
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.actions.action_builder import ActionBuilder
from selenium.webdriver import Keys, ActionChains
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
2. 날씨 데이터 가져오기
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get("https://www.weather.go.kr/w/weather/forecast/short-term.do")
driver.implicitly_wait(10)
# 데이터를 가져온 후 개행문자와 필요없는 단위를 잘라낸다
temps = driver.find_element(By.ID, "my-tchart").text
temps = [int(i) for i in temps.replace("℃","").split("\n")]
3. 꺾은선 그래프로 나타내기
# x = Elapsed Time(0~len(temperatures)
# y = temperatures
import seaborn as sns
import matplotlib.pyplot as plt
plt.ylim(min(temps)-2, max(temps)+2)
plt.title("Expected Temperature from now on")
sns.lineplot(
x = [i for i in range(len(temps))],
y = temps
)
plt.show()
1. 필요한 라이브러리 불러오기
import requests
from bs4 import BeautifulSoup
import time
2. 질문 tag 데이터 가져오기
# dict를 만들어 tag의 빈도 수를 센다
frequency = {}
for i in range(1, 11):
res = requests.get(f"https://hashcode.co.kr/?page={i}", user_agent)
soup = BeautifulSoup(res.text, "html.parser")
for t in soup.find_all("ul", "question-tags"):
tag_name = t.find("li").find("a").find("span").text.strip()
frequency[tag_name] = frequency.get(tag_name, 0) + 1
time.sleep(0.5)
3. Counter를 사용하여 가장 빈도가 높은 tag를 추출
from collections import Counter
counter = Counter(frequency)
counter.most_common(10)
4. 막대 그래프로 그리기
# Seaborn을 이용해 이를 Barplot으로 그립니다.
import seaborn as sns
import matplotlib.pyplot as plt
x = [e[0] for e in counter.most_common(10)]
y = [e[1] for e in counter.most_common(10)]
plt.figure(figsize=(15,10))
plt.title("Frequency of question in Hashcode")
plt.xlabel("Tag names")
plt.ylabel("Frequency of tags")
sns.barplot(
x = x,
y = y
)
plt.show()
한국어 형태소 분석기 라이브러리로, 주어진 문장에서 명사 등을 뽑아 내는 데에 사용할 수 있다.
🚨 Java가 설치되어 있어야 동작한다.
# 시각화에 쓰이는 라이브러리
import matplotlib.pyplot as plt
from wordcloud import WordCloud
# 횟수를 기반으로 딕셔너리 생성
from collections import Counter
# 문장에서 명사를 추출하는 형태소 분석 라이브러리
from konlpy.tag import Hannanum
national_anthem = """
동해물과 백두산이 마르고 닳도록
하느님이 보우하사 우리나라 만세
무궁화 삼천리 화려 강산
대한 사람 대한으로 길이 보전하세
남산 위에 저 소나무 철갑을 두른 듯
바람 서리 불변함은 우리 기상일세
무궁화 삼천리 화려 강산
대한 사람 대한으로 길이 보전하세
가을 하늘 공활한데 높고 구름 없이
밝은 달은 우리 가슴 일편단심일세
무궁화 삼천리 화려 강산
대한 사람 대한으로 길이 보전하세
이 기상과 이 맘으로 충성을 다하여
괴로우나 즐거우나 나라 사랑하세
무궁화 삼천리 화려 강산
대한 사람 대한으로 길이 보전하세
"""
hannanum = Hannanum()
nouns = hannanum.nouns(national_anthem)
words = [noun for noun in nouns if len(noun) > 1]
words[:10]
# font를 지정해주지 않으면 한글이 깨지므로 한글 폰트의 경로를 명시한다.
wordcloud = WordCloud(
font_path="/Users/ohyujeong/Library/Fonts/PyeongChangPeace-Bold.otf",
background_color="white",
width=1000,
height=1000,
)
img = wordcloud.generate_from_frequencies(counter)
plt.imshow(img)
import requests
from bs4 import BeautifulSoup
import time
questions = []
for i in range(1, 11):
res = requests.get(f"https://hashcode.co.kr/?page={i}", user_agent)
soup = BeautifulSoup(res.text, "html.parser")
for e in soup.find_all("li", "question-list-item"):
questions.append(e.h4.text.strip())
time.sleep(0.5)
# 시각화에 쓰이는 라이브러리
import matplotlib.pyplot as plt
from wordcloud import WordCloud
# 횟수를 기반으로 딕셔너리 생성
from collections import Counter
# 문장에서 명사를 추출하는 형태소 분석 라이브러리
from konlpy.tag import Hannanum
hannanum = Hannanum()
words = []
for q in questions:
nouns = hannanum.nouns(q) # 1번 반복할 때 나온 명사들
words += nouns # 누적해서 나오는 명사들
# 각 단어의 갯수를 count
counter = Counter(words)
wordcloud = WordCloud(
font_path="/Users/ohyujeong/Library/Fonts/PyeongChangPeace-Bold.otf",
background_color="white",
height=1000,
width=1200
)
img = wordcloud.generate_from_frequencies(counter)
plt.imshow(img)
conda activate
, conda deactivate
명령어로 가상환경을 활성화/비활성화 할 수 있다. 데이터 분석에 관한 라이브러리가 가상환경에 설치되어 있어 데이터분석에 많이 활용된다고 한다.