python¿¡¼­ Àоî¿Â CSV µ¥ÀÌÅ͸¦ ÀÏÁ¤°£°ÝÀ¸·Î ¹«½ÃÇÏ°í scatter ±×¸®±â Áú¹®..

python   
   Á¶È¸ 4883   Ãßõ 1    

 

혹 python 다루시는 분이 계실것 같아 여쭤봅니다..


python에서 CSV 데이터를 읽어 온 뒤 scatter로 뿌리는 문제입니다.

CSV 데이터는 x_1, y_1, y_2로 되어 있고, 각 10,000개 씩의 값을 가진 20,000개의 좌표점입니다.


이를 대략 x축을 기준으로 1000간격에 해당하는 좌표점만 띄엄띄엄 scatter로 뿌리고 싶습니다.

이를 반복문을 써서


for step in range(10001):

         if step % 1000 == 0:

                x = x_1

                y1 = y_1

                y2 = y_2

x_1, y_1, y_2의 데이터를 1000간격씩 x, y1, y2에 새로 저장해


x,y1 그리고 x,y2를 scatter로 뿌리면 될꺼라 생각했는데, 생각이랑 다르게 안되네요.

어떻게 해야될까요..


아래는 제가 짜본 코드입니다.


import pandas as pd
import matplotlib.pyplot as plt

dataset=pd.read_csv("Basic.csv");
y_1= dataset.iloc[:,1].values.astype(float)
y_2= dataset.iloc[:,2].values.astype(float)
x_1= dataset.iloc[:,0].values.astype(float)


for step in range(10001):
    if step % 1000 == 0:
        y1 = y_1
        y2 = y_2
        x = x_1


plt.scatter(x, y1, marker='s', color='b')
plt.annotate('maximum: 0.3669', xy=(9991,0.3669), xytext=(6000,0.2), arrowprops=dict(arrowstyle="->", connectionstyle="arc3, rad=0.2"))

plt.scatter(x, y2, marker='^', color='r')
plt.annotate('maximum: 0.4869', xy=(9643,0.4869), xytext=(6000,0.65), arrowprops=dict(arrowstyle="->", connectionstyle="arc3, rad=-0.2"))


plt.ylim(0,1.0)

plt.legend(loc='upper left', frameon=False)

plt.show()


ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
º¯¼±ÁÖ 2017-05
pythonÀº Àß ¸ð¸¨´Ï´Ù¸¸, Á¦°¡ »ç¿ëÇÏ´Â R¿¡¼­ Àú¶ó¸é ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î ¹®Á¦¸¦ Ç®¾îº¸°Ú½À´Ï´Ù.
¼øȯ±¸¹®¿¡ ÀÇÇÏ¿© Á¡À» Ãâ·ÂÇÏ´Â ¹æ½ÄÀ¸·Î Äڵ带 Â¥½Å °Í °°½À´Ï´Ù. ÀÌ·² °æ¿ì¿¡ ù ¹ø°³ª ±× ±Ùó °ªÀ» °¡Áö´Â ´Ù¸¥ °ªÀº plot¿¡ º¸ÀÏ ¼ö ÀÖÀ¸³ª ±×·¸Áö ¾ÊÀº °æ¿ì¿¡´Â ù ¹ø° plot ¿µ¿ª ¹ÛÀÇ °ªÀ̶ó¸é º¸ÀÌÁö ¾Ê½À´Ï´Ù. ÃÖ´ë°ª°ú ÃÖ¼Ò°ªÀ» ¹Ì¸® È®ÀÎÇÏ¿© ÀÌ ¿µ¿ªÀ» ¹Ì¸® plot¿¡ Á¤ÀÇÇÏ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
±×º¸´Ù ÆíÇÑ ¹æ¹ýÀ¸·Î´Â ±× ¸î °³ÀÇ °ªÀ» °¡Áö´Â data ¸¦ ÃßÃâÇÏ¿© º°µµÀÇ data ¸¦ ¸¸µç ´ÙÀ½¿¡ ±×³É plot Çغ¸°Ú½À´Ï´Ù.
python 2017-05
»ý°¢Çغ¸´Ï ¹Ýº¹±¸¹®¿¡¼­, 10000À» 1000À¸·Î ³ª´«°ªÀÇ ³ª¸ÓÁö°¡ 0ÀÏ ¶§¸¶´Ù x_1, y_1, y_2ÀÇ ¸®½ºÆ® °ªÀÇ ÀϺΠ¿ä¼Ò¸¦ ÃëÇØ x, y1, y2¿¡ ÀúÀåÇؾßÇϴµ¥,

±âÁ¸ÀÇ ¹Ýº¹¹®¿¡¼­ ¿ä¼Ò°¡ ¾Æ´Ñ, ¸®½ºÆ® °ª Àüü¸¦ °è¼ÓÇؼ­ º¹»çÇÏ°í ÀÖ´õ¶ó±¸¿ä.....

±×·¡¼­ °£´ÜÇÏ°Ô ¸®½ºÆ®¿¡¼­ ¿ä¼Ò°ª¸¸ ã¾Æ ´Ù¸¥ º¯¼ö¿¡ ÀúÀåÇϵµ·Ï ³Ö¾î¼­ Ç®¾ú½À´Ï´Ù.

Ȥ ±Ã±ÝÇϽŠºÐ ÀÖÀ»Áöµµ ¸ô¶ó ÄÚµå ¾Æ·¡ ºÙÀÔ´Ï´Ù.


import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

dataset=pd.read_csv("Model 1 and 2 compariosn.csv");
y_1= dataset.iloc[:,1].values.astype(float)
y_2= dataset.iloc[:,2].values.astype(float)
x_1= dataset.iloc[:,0].values.astype(float)


x = np.zeros(40, dtype=float)
y1 = np.zeros(40, dtype=float)
y2 = np.zeros(40, dtype=float)



for step in range(x_1.size):
    if step % 250 == 0:
      stepnew=round(step/250)
        y1[stepnew] = y_1[step]
        y2[stepnew] = y_2[step]
        x[stepnew] = x_1[step]


plt.scatter(x, y1, marker='o', color='b')
plt.annotate('maximum: 0.3669', xy=(9991,0.3669), xytext=(6000,0.2), arrowprops=dict(arrowstyle="->", connectionstyle="arc3, rad=0.2"))

plt.scatter(x, y2, marker='^', color='r')
plt.annotate('maximum: 0.4869', xy=(9643,0.4869), xytext=(6000,0.65), arrowprops=dict(arrowstyle="->", connectionstyle="arc3, rad=-0.2"))

plt.xlim(x.min()-1000, x.max()+1000)
plt.ylim(0,1.0)

plt.legend(loc='upper left', frameon=False)

plt.show()


QnA
Á¦¸ñPage 1917/5680
2014-05   4946456   Á¤ÀºÁØ1
2015-12   1483111   ¹é¸Þ°¡
2018-11   2701   PCMaster
2016-08   5157   DoubleSH
2021-04   2296   º´µû°³´Ô
2012-02   4963   ½Å¿ì¼·
2015-07   7180   Á¾ÀÌ¿Í¿¬ÇÊ
2021-04   3889   ±è¿µ±â´ëÀü
2014-03   4112   ±è°Ç¿ì
2015-07   4218   Àü¼³¼ÓÀǹ̡¦
2017-08   3667   ¼­¿ïI±èµ¿¼ö
2020-01   2114   Ȧ¸¯0o0
2016-08   12357   RaspberryPi
2015-08   3630   izegtob
2012-03   5218   ¼ÛÇöÈ£
2017-08   3469   À¯µ¿ÈÆ
08-26   621   ºÎ»ê´ë»§
2017-08   4906   1CPUÁöâÈÆ
2018-12   2208   ÇöÁø
2017-08   3924   Àü¼³¼ÓÀǹ̡¦
09-02   1249   ¾×ü¿ÍÄÄÇ»ÅÍ
2012-03   10378   jake