본문 바로가기
Pyhton/matplotlib

Day37_Python(13)_Am

by roaring90s 2025. 10. 1.

scatterEx1

import matplotlib.pyplot as plt
import numpy as np

dataA = np.random.randn(100,2)
#x 포인트, y 포인트 설정
print(dataA)
dataA += np.array([-1, -1])

dataB = np.random.randn(100,2)
dataB += np.array([1,1])

plt.scatter(dataA[:,0], dataA[:,1], color='0.25')   #색을 숫자로도 가능m 0 = 블랙, 1= 흰색
plt.scatter(dataB[:,0], dataB[:,1], color='0.75', edgecolors='r')   #테두리색 설정가능
plt.show()


 


 

import pandas as pd
import matplotlib.pyplot as plt
plt.rc('font', family = 'Malgun Gothic')
#한글 쓸수 있게 폰트 불러오기

mpg = pd.read_csv('mpg.csv', encoding='utf-8')
print(mpg)
mpg.info()

#엔진 크기와 고속도로주행 마일수를 확인하기 위해 코드작성
xdata = mpg.loc[:,'displ']
ydata = mpg.loc[:,'hwy']

plt.plot(xdata, ydata, marker='o', ls='None')
plt.title('산점도 그래프', fontsize=15)
plt.xlabel('엔진크기')
plt.ylabel('고속도로 주행 마일수')
plt.show()

 

#4륜, 전륜, 후륜을 색깔로 구분하기
print(mpg.drv.unique())

mycolor = ['r', 'g', 'b']
label_dict = {'f':'전륜 구동', '4':'4륜 구동', 'r':'후륜 구동'}

for idx, finditem in enumerate(mpg.drv.unique()):
    #4륜, f, b 를 찾기
    xdata = mpg.loc[mpg['drv'] == finditem, 'displ']
    ydata = mpg.loc[mpg['drv'] == finditem, 'hwy']
    plt.plot(xdata, ydata, color=mycolor[idx], marker='o',
             linestyle='None', label=label_dict[finditem])
plt.legend(loc='best')
plt.xlabel('엔진크기')
plt.ylabel('고속도로 주행 마일수')
plt.grid(True)
plt.show()

 


 

import matplotlib.pyplot as plt
import numpy as np

label_list = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica']
def read_label(label):
    return label_list.index(label)

data = np.loadtxt('iris.data.txt',
                  delimiter=',',
                  converters={4:read_label})
#delimiter = 데이터에서 항목을 나눌때 사용하는 문자
print(data)

color_set = ['b','g','r']
color_list = [color_set[int(label)] for label in data[:, 4]]
print(color_list)

plt.scatter(data[:,0], data[:,1], color=color_list)

# plt.legend(loc='best')
# 칼러 리스트 데이트를 가져와서 쓰기가 어려워 legend를 못 쓴다. 그래서 임의적으로 사용함

import matplotlib.patches as patches

plt.legend(handles=[patches.Patch(color='b', label='iris-setosa'),
                    patches.Patch(color='g', label='iris-versicolor'),
                    patches.Patch(color='r', label='iris-virginica')],
           loc='best',
           edgecolor='k')
plt.show()

 


 

import matplotlib.pyplot as plt
import pandas as pd

diamonds = pd.read_csv('diamonds.csv')
diamonds.info()
print()
diamonds = diamonds.sample(frac=0.01, random_state=49)
# frac = 데이터의 1%를 가져오겠다. random_state = seed값 고정하는거랑 같은것
diamonds.info()
print(diamonds.cut.unique())
cut_list = diamonds.cut.unique()
my_color = ['r','g','b','y','m']
cut_dict = {cut_list[idx]: my_color[idx] for idx in range(len(cut_list))}
print(cut_dict)
diamonds['newcut'] = diamonds['cut'].map(cut_dict)
print(diamonds.head())

 

def recode_table(table):
    if table >= 60:
        return 100
    elif table >= 58:
        return 30
    elif table >= 45:
        return 5
    else:
        return 1

print()
diamonds['newtable'] = diamonds['table'].apply(recode_table)
print(diamonds.head(10))

fig = plt.figure(figsize=(8, 6))
ax1 = fig.add_subplot(111)
xdata = diamonds['price']
ydata = diamonds['depth']

ax1.scatter(xdata, ydata, s=diamonds['newtable'], c=diamonds['newcut'], alpha=0.7)
plt.xlabel('price')
plt.ylabel('depth')

import matplotlib.patches as patches
plt.legend(handles=[patches.Patch(color='r', label='Very Good'),
                    patches.Patch(color='g', label='Good'),
                    patches.Patch(color='b', label='Ideal'),
                    patches.Patch(color='y', label='Premium'),
                    patches.Patch(color='m', label='Fair')],
           loc='best',
           edgecolor='k')

plt.show()


 

 

quiz1 확인하기


 

'Pyhton > matplotlib' 카테고리의 다른 글

Day38_Python(14)_Pm  (0) 2025.10.02
Day38_Python(14)_Am  (0) 2025.10.02
Day37_Python(13)_Pm  (0) 2025.10.01
Day36_Python(12)_Pm  (0) 2025.09.30
Day36_Python(12)_Am  (0) 2025.09.30