<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>EastLight</title>
    <link>https://fromeastlight.tistory.com/</link>
    <description>We all try to make things work, no one sets out to fail. Let's give it a try first and decide afterward.</description>
    <language>ko</language>
    <pubDate>Mon, 13 Apr 2026 03:14:53 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Lucas.Kim</managingEditor>
    <image>
      <title>EastLight</title>
      <url>https://tistory1.daumcdn.net/tistory/8426755/attach/b3945f4d92fa47b892181ead2970b095</url>
      <link>https://fromeastlight.tistory.com</link>
    </image>
    <item>
      <title>주식의 본질과 시장의 성적표 '주가 지수' 완벽 가이드</title>
      <link>https://fromeastlight.tistory.com/92</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ChatGPT Image 2026년 4월 12일 오후 07_59_48.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nBx6O/dJMcahjLJXS/TLSpcewNW72hgPCgcsQs1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nBx6O/dJMcahjLJXS/TLSpcewNW72hgPCgcsQs1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nBx6O/dJMcahjLJXS/TLSpcewNW72hgPCgcsQs1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnBx6O%2FdJMcahjLJXS%2FTLSpcewNW72hgPCgcsQs1k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1536&quot; height=&quot;1024&quot; data-filename=&quot;ChatGPT Image 2026년 4월 12일 오후 07_59_48.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주식의 본질은 회사의 주인(주주)이 되는 권리임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 동업의 원리 : &lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: start;&quot; data-complete=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;친구가 기가 막힌 카페 사업 아이템이 있는데 돈이 부족하다고 합니다. 이때 여러분이 1,000만 원을 빌려주는 게 아니라&amp;nbsp;&lt;b&gt;'투자'&lt;/b&gt;를 하고 그 대가로&amp;nbsp;&lt;b&gt;전체 지분의 10%&lt;/b&gt;를 받았다면, 여러분은 그 카페의&amp;nbsp;&lt;/span&gt;&lt;b&gt;'주식 10%'를 보유한 주주&lt;/b&gt;&lt;span style=&quot;text-align: start;&quot;&gt;가 된 것입니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 주주의 권리&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;시세차익 : 카페가 유명해져서 기업 가치가 1억에서 10억이 되면 내 지분의 가치도 10배가 됨&lt;/li&gt;
&lt;li&gt;배당금 : 카페가 매달 버는 순 이익의 일부를 '주인님 감사합니다' 하고 나눠줌&lt;/li&gt;
&lt;li&gt;의결권 : 회사의 중요한 결정에 내 목소리를 낼 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주가 지수는 시장의 평균 온도계&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수천 개의 상장 기업 주가를 일일이 확인하기는 불가능. 그래서 시장 전체가 어제보다 성장했는지, 퇴보했는지를 수치화한 것이 지수임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇다면 어떻게 지수 계산이 진행되나? 가장 많이 쓰이는 방식은 시가총액 가중 방식임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시가총액(몸값) = 주가 * 발행 주식 수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;몸집이 큰기업(삼전, 애플 등)의 주가가 변할 때 지수에 더 큰 영향을 주도록 설계되어 있음. 즉 지수는 그 나라의 대장주들이 이끄는 흐름이라고 보면 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글로벌 5대 지수&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 87px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 8.21701%; height: 19px;&quot;&gt;미국&lt;/td&gt;
&lt;td style=&quot;width: 16.2403%; height: 19px;&quot;&gt;S&amp;amp;P500&lt;/td&gt;
&lt;td style=&quot;width: 75.5426%; height: 19px;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;미국 상장 기업 중 우량주 500개를 모은 지수. 전 세계 펀드 매니저들이 가장 중요하게 여기는&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;'표준'&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;입니다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 8.21701%; height: 17px;&quot;&gt;미국&lt;/td&gt;
&lt;td style=&quot;width: 16.2403%; height: 17px;&quot;&gt;NASDAQ&lt;/td&gt;
&lt;td style=&quot;width: 75.5426%; height: 17px;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;애플, 마이크로소프트, 엔비디아 같은&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;혁신 기술주&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;들의 집합소입니다. 전 세계 기술 트렌드를 주도합니다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 8.21701%; height: 17px;&quot;&gt;미국&lt;/td&gt;
&lt;td style=&quot;width: 16.2403%; height: 17px;&quot;&gt;Dow Jones&lt;/td&gt;
&lt;td style=&quot;width: 75.5426%; height: 17px;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;미국을 대표하는 초우량 기업&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;딱 30개&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;만 뽑은 지수입니다. 역사는 깊지만 종목 수가 적어 대표성이 조금 떨어진다는 평도 있습니다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 8.21701%; height: 17px;&quot;&gt;한국&lt;/td&gt;
&lt;td style=&quot;width: 16.2403%; height: 17px;&quot;&gt;KOSPI : 코스피&lt;/td&gt;
&lt;td style=&quot;width: 75.5426%; height: 17px;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;유가증권시장. 삼성전자, SK하이닉스 같은&amp;nbsp;&lt;/span&gt;전통의 대기업&lt;span style=&quot;text-align: start;&quot;&gt;들이 모여 있습니다. 한국 경제의 기초 체력을 보여줍니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 8.21701%; height: 17px;&quot;&gt;한국&lt;/td&gt;
&lt;td style=&quot;width: 16.2403%; height: 17px;&quot;&gt;KOSDAQ : 코스닥&lt;/td&gt;
&lt;td style=&quot;width: 75.5426%; height: 17px;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;벤처, IT, 바이오&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt; 중심의 시장입니다. 코스피보다 규모는 작지만 성장성이 높은 기업들이 많아 변동성(위험과 기회)이 큽니다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Stocks</category>
      <category>S&amp;amp;P500</category>
      <category>나스닥</category>
      <category>미국주식</category>
      <category>재테크기초</category>
      <category>주가지수</category>
      <category>주식공부</category>
      <category>주식이란</category>
      <category>주식입문</category>
      <category>주식초보</category>
      <category>코스피코스닥</category>
      <author>Lucas.Kim</author>
      <guid isPermaLink="true">https://fromeastlight.tistory.com/92</guid>
      <comments>https://fromeastlight.tistory.com/92#entry92comment</comments>
      <pubDate>Sun, 12 Apr 2026 21:12:08 +0900</pubDate>
    </item>
    <item>
      <title>Basic English 2</title>
      <link>https://fromeastlight.tistory.com/91</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ChatGPT Image 2026년 3월 16일 오후 02_33_06.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xpkpw/dJMcaiXcwtu/KOtBYer1FuP9eoQxKpgb9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xpkpw/dJMcaiXcwtu/KOtBYer1FuP9eoQxKpgb9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xpkpw/dJMcaiXcwtu/KOtBYer1FuP9eoQxKpgb9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxpkpw%2FdJMcaiXcwtu%2FKOtBYer1FuP9eoQxKpgb9k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1536&quot; height=&quot;1024&quot; data-filename=&quot;ChatGPT Image 2026년 3월 16일 오후 02_33_06.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3형식 = 주어 + 타동사 + 목적어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 목적어는 6개만이 올 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; (1) 명사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; (2) 대명사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; (3) 동명사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; (4) to부정사 &amp;gt; 명사, 형용사, 부사 역할을 하지만 명사 역할로 사용.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; (5) 의문 to부정사 &amp;gt; why, when, where, how, what + to부정사&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; why to help a friend&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;why to be happy&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;why to eat an apple&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;how to be perfect&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;how to teach english&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;I know how to run&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;i know how to study math&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; (6) 절&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;-&lt;span&gt; Examples&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;I like reading a book to kill stress.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;주어 I&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;타동사 like&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;목적어 reading(동명사) a book, to read a book(to 부정사)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;3형식 문장 구조에 모든 단어(품사)는 채웠음, 전치사와 부사는 남는 자리에 넣을 것.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;부사 to kill stress&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*to 부정사는 명사, 형용사, 부사 역할 수행. 위 문장에서는 명사와 부사로써의 역할 수행.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*부사는 전치사를 극혐함, 전치사 바로 앞에 위치하는 것을 싫어함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;I never know why to happy with people in the same space.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;주어 I&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;동사 Never Know&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;목적어 why to happy&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;전치사 in the same space&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;You should know how to be nice for great date with a girfriend&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;주어 I&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;동사 Should(조동사) know&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;목적어 how to be(상태니깐 be사용) nice&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;전치사 for great date&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;부사 with a girfriend &amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;The woman who likes to help people was reading a newspaper against the window&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;The woman who likes helping people was reading a newspaper against the window&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;주어 A woman&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;동사 was reading&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;목적어 a newspaper&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종속절 : 접속사 + 주어 + 동사 형태로 생긴 명사, 형용사, 부사로 문자의 구성요소외 위치에 배치. 이때 접속사 뜻을 맨뒤로 번역.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 형용사로써의 종속절 : ~하는(이때 접속사 번역하지 않음)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 접속사 : when, where, why, how, what, that, because, before, after, as , since, while, if&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Example&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;Monday, when i run&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;sunday, when i helped my father&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;I know Tuesday when i studied with my friends.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;Saturday, when i work out.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;She thinks herself very clever, although she is young.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;타동사 뒤에는 목적어가 옴. 이와 같이 전치사에도 뒤에 목적어가 오는 전치사 + 목적어 형태가 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;about+목적어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;about helping my father&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;about being happy&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;about being perfect&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;about how to study&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;about why to help my mother&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;about why i love you&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;about how i study english&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Example&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;I had to discreetly think about why to make a lot of money&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;We really aplogize for causing serious problems&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;The astronaunt returned to earth to explain what he saw in space.&amp;nbsp;&lt;/p&gt;</description>
      <category>English</category>
      <category>3형식 예제</category>
      <category>대명사</category>
      <category>동명사</category>
      <category>명사</category>
      <category>영어</category>
      <category>영어 3형식</category>
      <category>영어 절</category>
      <category>영어공부</category>
      <category>영어기본</category>
      <category>의문 to부정사</category>
      <author>Lucas.Kim</author>
      <guid isPermaLink="true">https://fromeastlight.tistory.com/91</guid>
      <comments>https://fromeastlight.tistory.com/91#entry91comment</comments>
      <pubDate>Sun, 12 Apr 2026 19:52:41 +0900</pubDate>
    </item>
    <item>
      <title>Basic English 1</title>
      <link>https://fromeastlight.tistory.com/90</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;ChatGPT Image 2026년 3월 16일 오후 02_33_06.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2vDVJ/dJMcabcG154/t5bsSBhyIp2FPBfU95BNTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2vDVJ/dJMcabcG154/t5bsSBhyIp2FPBfU95BNTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2vDVJ/dJMcabcG154/t5bsSBhyIp2FPBfU95BNTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2vDVJ%2FdJMcabcG154%2Ft5bsSBhyIp2FPBfU95BNTK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1536&quot; height=&quot;1024&quot; data-filename=&quot;ChatGPT Image 2026년 3월 16일 오후 02_33_06.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 영어는 동사가 지배함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 동사는 두가지로 나눠짐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- be 동사 : 상태 &amp;gt; I am happy, I am sick&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 일반 동사 : 동작 &amp;gt; I go, I run&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 일반 동사는 2가지로 구분됨. 자동사와 타동사 모두 해당되는 동사가 있고, 자동사만 되는 동사, 타동사만 되는 동사가 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* Ex) Eat 은 자동사, 타동사 모두 해당.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 자동사 : 자동사 뒤에는 목적어가 오지 않음 &amp;gt; i eat for lunch&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 타동사 : 타동사 뒤에는 목적어가 옴 &amp;gt; I eat taco&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 영어문장은 4개의 뼈대로 구성됨. 각 뼈대에 단어(품사)를 집어 넣음으로써 문장을 만듬.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 주어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 동사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 목적어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 보어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 하지만 예외가 있음. 부사, 전치사는 단어(품사)지만 뼈대에 속하지 않음. 즉, 주어, 동사, 목적어, 보어자리에 못들어 감. 정해진 뼈대 위치 외에만 부사, 전치사를 사용할 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 자동사 뒤에 목적어는 못오지만 전치사, 부사를 넣을 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 명사, 형용사, 부사, 전치사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 명사: a/the + 명사. a(아무거나, 한개), the(특정한 것)를 명사 앞에 둠. (두 종류: a/the+객체, to부정사, 동명사)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 형용사: 상태. 명사를 꾸며줌.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 부사: 부연설명. 있어도되고 없어도됨.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 전치사: 뒤에 누군가를 데리고다님.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;* 전치사, 부사는 문장 구성 기본자리에 못들어감.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 문장은 총 6가지로 구분. 문장을 몇 형식으로 말할지는 자기 마음대로 함 정답이 없기 때문.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 1형식: 주어 + 자동사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 2형식: 주어 + Be동사 + 보어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 3형식: 주어 + 타동사 + 목적어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 4형식: 주어 + 타동사 + 간접 목적어 + 직접 목적어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 5형식: 주어 + 타동사 + 목적어 + 보어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 수동태: 주어 + Be동사 + P.P&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. To부정사 : To + 동사원형&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 동작, 상태&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 명사, 형용사, 부사 역할 수행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 명사로써의 To부정사 : ~는 것.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 형용사로써의 To부정사 : ~는. girl to study 공부하는 여자 / The boy to happy 행복한 남자아이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 부사로써의 To부정사 : ~하기 위해서, ~해서, ~하도록. I run to be happy 난 행복하기 위해 달린다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 동명사 : 동사+ing. 동작, 상태를 표현하는 명사.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 명사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 일반동사 + ing : 동작표현&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- Be동사 + ing : 상태표현&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- ~는 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 동명사도 결국 단어(품사)임 때문에 문장의 구조 기본요소에 넣어서 활용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 부정형: Not/Never + 동명사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- Ex) Attacking an enemy : 적을 공격하는 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- Ex) I like running in the evening : 나는 저녁에 뛰는 것을 좋아한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- To부정사와 동명사는 같음. 명사로써의 공통점이 있기 떄문&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- Ex) I like running: 난 뛰는 것을 좋아해&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- Ex) i like to run: 난 뛰는 것을 좋아해&lt;/p&gt;</description>
      <category>English</category>
      <category>english</category>
      <category>to부정사</category>
      <category>기본영어</category>
      <category>동명사</category>
      <category>맨땅영어</category>
      <category>문장구성요소</category>
      <category>문장기본요소</category>
      <category>영어</category>
      <category>영어 문장</category>
      <category>초보영어</category>
      <author>Lucas.Kim</author>
      <guid isPermaLink="true">https://fromeastlight.tistory.com/90</guid>
      <comments>https://fromeastlight.tistory.com/90#entry90comment</comments>
      <pubDate>Thu, 9 Apr 2026 20:03:22 +0900</pubDate>
    </item>
    <item>
      <title>Seaborn 분포 시각화 완전 정리 2 | Violin/Box/Scatter/Heatmap + Subplots 실전</title>
      <link>https://fromeastlight.tistory.com/89</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;데이터 시각화.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nsvFS/dJMcaajWE2B/VZlMgE64Ot2tBeJXJbpV6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nsvFS/dJMcaajWE2B/VZlMgE64Ot2tBeJXJbpV6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nsvFS/dJMcaajWE2B/VZlMgE64Ot2tBeJXJbpV6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnsvFS%2FdJMcaajWE2B%2FVZlMgE64Ot2tBeJXJbpV6k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1536&quot; height=&quot;1024&quot; data-filename=&quot;데이터 시각화.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-end=&quot;82&quot; data-start=&quot;74&quot; data-ke-size=&quot;size26&quot;&gt;  개요&lt;/h2&gt;
&lt;p data-end=&quot;164&quot; data-start=&quot;84&quot; data-ke-size=&quot;size16&quot;&gt;이번 글에서는 Titanic 데이터로 &lt;b&gt;연속형/범주형 분포를 더 깊게 보는 시각화&lt;/b&gt;를 정리합니다.&lt;br /&gt;특히 초보자들이 자주 헷갈리는 포인트인&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;342&quot; data-start=&quot;166&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;206&quot; data-start=&quot;166&quot;&gt;&lt;b&gt;Violin plot이 &amp;ldquo;히스토그램 + 박스플롯&amp;rdquo; 느낌인 이유&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;237&quot; data-start=&quot;207&quot;&gt;&lt;b&gt;Box plot이 4분위를 어떻게 보여주는지&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;280&quot; data-start=&quot;238&quot;&gt;&lt;b&gt;Subplots에서 ax를 넘겨 여러 그래프를 한 번에 그리는 법&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;310&quot; data-start=&quot;281&quot;&gt;&lt;b&gt;Scatterplot으로 관계(패턴) 확인&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;342&quot; data-start=&quot;311&quot;&gt;&lt;b&gt;상관관계를 Heatmap으로 한 번에 보는 법&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;357&quot; data-start=&quot;344&quot; data-ke-size=&quot;size16&quot;&gt;을 한 번에 정리합니다.&lt;/p&gt;
&lt;blockquote data-end=&quot;401&quot; data-start=&quot;359&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;401&quot; data-start=&quot;361&quot; data-ke-size=&quot;size16&quot;&gt;✅ 요청하신 대로 &lt;b&gt;코드는 한 줄도 줄이지 않고 그대로&lt;/b&gt; 포함합니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-end=&quot;406&quot; data-start=&quot;403&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;436&quot; data-start=&quot;408&quot; data-ke-size=&quot;size26&quot;&gt;1️⃣ Violin Plot (바이올린 플롯)&lt;/h2&gt;
&lt;h3 data-end=&quot;449&quot; data-start=&quot;438&quot; data-ke-size=&quot;size23&quot;&gt;✅ 개념/목적&lt;/h3&gt;
&lt;p data-end=&quot;498&quot; data-start=&quot;451&quot; data-ke-size=&quot;size16&quot;&gt;Violin plot은 **연속형 값의 분포(밀도)**를 &amp;ldquo;대칭 형태&amp;rdquo;로 보여줍니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;597&quot; data-start=&quot;500&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;525&quot; data-start=&quot;500&quot;&gt;&lt;b&gt;히스토그램처럼 분포 모양&lt;/b&gt;을 보여주고&lt;/li&gt;
&lt;li data-end=&quot;597&quot; data-start=&quot;526&quot;&gt;&lt;b&gt;Box plot처럼 중앙 경향(중앙값, 사분위 등) 정보&lt;/b&gt;도 같이 담을 수 있습니다(옵션/기본 표시 방식에 따라 다름)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;611&quot; data-start=&quot;599&quot; data-ke-size=&quot;size23&quot;&gt;✅ 언제 쓰나?&lt;/h3&gt;
&lt;p data-end=&quot;650&quot; data-start=&quot;613&quot; data-ke-size=&quot;size16&quot;&gt;단일 컬럼 분포도도 가능하지만, 실무에서는 보통 다음이 핵심입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;688&quot; data-start=&quot;652&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;672&quot; data-start=&quot;652&quot;&gt;X축: &lt;b&gt;범주형(이산값)&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;688&quot; data-start=&quot;673&quot;&gt;Y축: &lt;b&gt;연속형 값&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;743&quot; data-start=&quot;690&quot; data-ke-size=&quot;size16&quot;&gt;즉, &amp;ldquo;등급별 나이 분포&amp;rdquo;, &amp;ldquo;성별 요금 분포&amp;rdquo;처럼 &lt;b&gt;범주별 분포 비교&lt;/b&gt;에 매우 강력합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771134709741&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;### violin plot

- 단일 컬럼에 대해서는 히스토그램과 유사하게 연속값의 분포도를 시각화 또한 중심에는 4분위를 알수없음

- 보통은 x축에 설정한 컬럼의 개별 이산값 별로 Y축 컬럼값의 분포도를 시각화하는 용도로 많이사용
sns.violinplot(x='Pclass',
               y='Age',
               data=titanic_df)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.41.41.png&quot; data-origin-width=&quot;552&quot; data-origin-height=&quot;417&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tZNPU/dJMcahi5AiW/bpZfNgr1wgSZC7WccBV8mK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tZNPU/dJMcahi5AiW/bpZfNgr1wgSZC7WccBV8mK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tZNPU/dJMcahi5AiW/bpZfNgr1wgSZC7WccBV8mK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtZNPU%2FdJMcahi5AiW%2FbpZfNgr1wgSZC7WccBV8mK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;552&quot; height=&quot;417&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.41.41.png&quot; data-origin-width=&quot;552&quot; data-origin-height=&quot;417&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  해석 예시&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1106&quot; data-start=&quot;986&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1043&quot; data-start=&quot;986&quot;&gt;1등석/2등석/3등석(Pclass)별로 승객 나이(Age)가 어떤 형태로 분포하는지 보여줍니다.&lt;/li&gt;
&lt;li data-end=&quot;1106&quot; data-start=&quot;1044&quot;&gt;단순 평균만 보는 barplot보다 **&amp;ldquo;어떤 나이대가 많고, 퍼짐이 얼마나 큰지&amp;rdquo;**를 더 잘 보여줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;1151&quot; data-start=&quot;1113&quot; data-ke-size=&quot;size26&quot;&gt;2️⃣ Subplots로 여러 Countplot 한 번에 그리기&lt;/h2&gt;
&lt;h3 data-end=&quot;1164&quot; data-start=&quot;1153&quot; data-ke-size=&quot;size23&quot;&gt;✅ 개념/목적&lt;/h3&gt;
&lt;p data-end=&quot;1196&quot; data-start=&quot;1166&quot; data-ke-size=&quot;size16&quot;&gt;분석 초기에는 보통 범주형 컬럼들이 여러 개 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1233&quot; data-start=&quot;1198&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1208&quot; data-start=&quot;1198&quot;&gt;Survived&lt;/li&gt;
&lt;li data-end=&quot;1217&quot; data-start=&quot;1209&quot;&gt;Pclass&lt;/li&gt;
&lt;li data-end=&quot;1223&quot; data-start=&quot;1218&quot;&gt;Sex&lt;/li&gt;
&lt;li data-end=&quot;1233&quot; data-start=&quot;1224&quot;&gt;Age_cat&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1290&quot; data-start=&quot;1235&quot; data-ke-size=&quot;size16&quot;&gt;이것들을 하나씩 그리면 번거롭고 흐름이 끊기기 때문에, subplots로 한 화면에 배치합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771134735108&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;fig, axs = plt.subplots(nrows=2,
                        ncols=3,
                        figsize=(12,4))

#subplots를 이용하여 주요 카테고리 성 컬럼 건수 시각화하기

cat_columns = ['Survived', 'Pclass', 'Sex', 'Age_cat']
for index, column in enumerate(cat_columns):
    print(index, column)

fig, axs = plt.subplots(nrows=1, ncols=len(cat_columns), figsize=(16, 4))

for index, column in enumerate(cat_columns):
    print('index:', index)
    # seaborn의 Axes 레벨 function들은 ax인자로 subplots의 어느 Axes에 위치할지 설정. 
    sns.countplot(x=column, data=titanic_df, ax=axs[index])
    if index == 3:
        # plt.xticks(rotation=90)으로 간단하게 할수 있지만 Axes 객체를 직접 이용할 경우 API가 상대적으로 복잡. 
        axs[index].set_xticklabels(axs[index].get_xticklabels(), rotation=90)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.42.04.png&quot; data-origin-width=&quot;798&quot; data-origin-height=&quot;269&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btu37F/dJMcaivsUIJ/3jJFsjSnET1yXGF7VFAT6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btu37F/dJMcaivsUIJ/3jJFsjSnET1yXGF7VFAT6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btu37F/dJMcaivsUIJ/3jJFsjSnET1yXGF7VFAT6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbtu37F%2FdJMcaivsUIJ%2F3jJFsjSnET1yXGF7VFAT6k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;798&quot; height=&quot;269&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.42.04.png&quot; data-origin-width=&quot;798&quot; data-origin-height=&quot;269&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;2047&quot; data-start=&quot;2035&quot; data-ke-size=&quot;size23&quot;&gt;✅ 핵심 포인트&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2226&quot; data-start=&quot;2049&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2168&quot; data-start=&quot;2049&quot;&gt;seaborn의 countplot, barplot, violinplot 같은 함수는 &lt;b&gt;Axes-level 함수&lt;/b&gt;라서&lt;br /&gt;ax=axs[index]로 &amp;ldquo;어느 칸에 그릴지&amp;rdquo; 지정할 수 있습니다.&lt;/li&gt;
&lt;li data-end=&quot;2226&quot; data-start=&quot;2169&quot;&gt;Age_cat처럼 값이 길거나 많으면 tick이 겹치므로 rotation=90이 필요합니다&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;2231&quot; data-start=&quot;2228&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;2288&quot; data-start=&quot;2233&quot; data-ke-size=&quot;size26&quot;&gt;3️⃣ Survived 기준으로 분포 비교하기 (Violin + Histogram 동시 비교)&lt;/h2&gt;
&lt;h3 data-end=&quot;2301&quot; data-start=&quot;2290&quot; data-ke-size=&quot;size23&quot;&gt;✅ 개념/목적&lt;/h3&gt;
&lt;p data-end=&quot;2323&quot; data-start=&quot;2303&quot; data-ke-size=&quot;size16&quot;&gt;생존 여부(Survived)에 따라:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2382&quot; data-start=&quot;2325&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2334&quot; data-start=&quot;2325&quot;&gt;나이(Age)&lt;/li&gt;
&lt;li data-end=&quot;2345&quot; data-start=&quot;2335&quot;&gt;요금(Fare)&lt;/li&gt;
&lt;li data-end=&quot;2364&quot; data-start=&quot;2346&quot;&gt;동승 형제/배우자(SibSp)&lt;/li&gt;
&lt;li data-end=&quot;2382&quot; data-start=&quot;2365&quot;&gt;동승 부모/자녀(Parch)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2431&quot; data-start=&quot;2384&quot; data-ke-size=&quot;size16&quot;&gt;이런 연속형 값들의 분포가 어떻게 달라지는지 확인하는 것은 매우 중요한 EDA입니다.&lt;/p&gt;
&lt;p data-end=&quot;2460&quot; data-start=&quot;2433&quot; data-ke-size=&quot;size16&quot;&gt;요청하신 방식은 다음처럼 &amp;ldquo;한 번에&amp;rdquo; 비교합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2546&quot; data-start=&quot;2462&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2498&quot; data-start=&quot;2462&quot;&gt;왼쪽: &lt;b&gt;Survived(0/1)별 Violin plot&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;2546&quot; data-start=&quot;2499&quot;&gt;오른쪽: &lt;b&gt;Survived 0/1 두 분포를 Histogram으로 겹쳐 비교&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1771134795411&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;subplots를 이용하여 여러 연속형 컬럼값들의 Survived 값에 따른 연속 분포도를 시각화
왼쪽에는 Violin Plot으로
오른쪽에는 Survived가 0일때의 Histogram과 Survived가 1일때의 Histogram을 함께 표현     
def show_hist_by_target(df, columns):
    cond_1 = (df['Survived'] == 1)
    cond_0 = (df['Survived'] == 0)
    
    for column in columns:
        fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(12, 4))
        sns.violinplot(x='Survived', y=column, data=df, ax=axs[0] )
        sns.histplot(df[cond_0][column], ax=axs[1], kde=True, label='Survived 0', color='blue')
        sns.histplot(df[cond_1][column], ax=axs[1], kde=True, label='Survived 1', color='red')
        axs[1].legend()
        
cont_columns = ['Age', 'Fare', 'SibSp', 'Parch']
show_hist_by_target(titanic_df, cont_columns)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;output.png&quot; data-origin-width=&quot;996&quot; data-origin-height=&quot;371&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFR3Hh/dJMcahJ9m01/4IXPmVJpTkkqSkJNuTQp21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFR3Hh/dJMcahJ9m01/4IXPmVJpTkkqSkJNuTQp21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFR3Hh/dJMcahJ9m01/4IXPmVJpTkkqSkJNuTQp21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFR3Hh%2FdJMcahJ9m01%2F4IXPmVJpTkkqSkJNuTQp21%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;996&quot; height=&quot;371&quot; data-filename=&quot;output.png&quot; data-origin-width=&quot;996&quot; data-origin-height=&quot;371&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;output2.png&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;371&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/W8YaY/dJMcahJ9m02/5WhQBNG1EY6LnrSM7KMJX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/W8YaY/dJMcahJ9m02/5WhQBNG1EY6LnrSM7KMJX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/W8YaY/dJMcahJ9m02/5WhQBNG1EY6LnrSM7KMJX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FW8YaY%2FdJMcahJ9m02%2F5WhQBNG1EY6LnrSM7KMJX1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1005&quot; height=&quot;371&quot; data-filename=&quot;output2.png&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;371&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;output3.png&quot; data-origin-width=&quot;988&quot; data-origin-height=&quot;371&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brGfrC/dJMcaibdvX5/HoAsnSd56SllW84EiXWDM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brGfrC/dJMcaibdvX5/HoAsnSd56SllW84EiXWDM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brGfrC/dJMcaibdvX5/HoAsnSd56SllW84EiXWDM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrGfrC%2FdJMcaibdvX5%2FHoAsnSd56SllW84EiXWDM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;988&quot; height=&quot;371&quot; data-filename=&quot;output3.png&quot; data-origin-width=&quot;988&quot; data-origin-height=&quot;371&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;figure data-ke-type=&quot;image&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; data-ke-style=&quot;alignCenter&quot;&gt;&lt;span class=&quot;bar_progress&quot;&gt;&lt;/span&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;output4.png&quot; data-origin-width=&quot;988&quot; data-origin-height=&quot;371&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tkGyK/dJMb99L4E9L/VvKl3WCTA2uQzy1TXlc6C0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tkGyK/dJMb99L4E9L/VvKl3WCTA2uQzy1TXlc6C0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tkGyK/dJMb99L4E9L/VvKl3WCTA2uQzy1TXlc6C0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtkGyK%2FdJMb99L4E9L%2FVvKl3WCTA2uQzy1TXlc6C0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;988&quot; height=&quot;371&quot; data-filename=&quot;output4.png&quot; data-origin-width=&quot;988&quot; data-origin-height=&quot;371&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;3316&quot; data-start=&quot;3300&quot; data-ke-size=&quot;size23&quot;&gt;✅ 왜 이렇게 그리나?&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3415&quot; data-start=&quot;3318&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3358&quot; data-start=&quot;3318&quot;&gt;Violin plot은 &lt;b&gt;전체 분포의 윤곽&lt;/b&gt;을 강하게 보여줍니다.&lt;/li&gt;
&lt;li data-end=&quot;3415&quot; data-start=&quot;3359&quot;&gt;Histogram은 **&amp;ldquo;어느 구간에 실제로 데이터가 많이 몰렸는지&amp;rdquo;**를 직관적으로 보여줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;3468&quot; data-start=&quot;3417&quot; data-ke-size=&quot;size16&quot;&gt;  둘을 같이 보면 &amp;ldquo;형태 + 빈도&amp;rdquo;를 동시에 확인할 수 있어 EDA가 매우 탄탄해집니다.&lt;/p&gt;
&lt;hr data-end=&quot;3473&quot; data-start=&quot;3470&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;3498&quot; data-start=&quot;3475&quot; data-ke-size=&quot;size26&quot;&gt;4️⃣ Box Plot (박스 플롯)&lt;/h2&gt;
&lt;h3 data-end=&quot;3511&quot; data-start=&quot;3500&quot; data-ke-size=&quot;size23&quot;&gt;✅ 개념/목적&lt;/h3&gt;
&lt;p data-end=&quot;3551&quot; data-start=&quot;3513&quot; data-ke-size=&quot;size16&quot;&gt;Box plot은 **사분위수(4분위)**를 박스 형태로 보여줍니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3637&quot; data-start=&quot;3553&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3575&quot; data-start=&quot;3553&quot;&gt;박스: Q1 ~ Q3 (중간 50%)&lt;/li&gt;
&lt;li data-end=&quot;3595&quot; data-start=&quot;3576&quot;&gt;중앙선: Median (중앙값)&lt;/li&gt;
&lt;li data-end=&quot;3619&quot; data-start=&quot;3596&quot;&gt;수염: 일반 범위(보통 1.5 IQR)&lt;/li&gt;
&lt;li data-end=&quot;3637&quot; data-start=&quot;3620&quot;&gt;점: 이상치(outlier)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;3656&quot; data-start=&quot;3639&quot; data-ke-size=&quot;size16&quot;&gt;범주별 분포 비교에도 좋습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771134837595&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;## Box Plot

- 4분위를 박스 형태로 표현

- x축 값에 이산값을 부여하면 이산값에 따른 box plot을 시각화

sns.boxplot(x='Pclass',
            y='Age',
            data=titanic_df)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.43.20.png&quot; data-origin-width=&quot;557&quot; data-origin-height=&quot;423&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ziYhI/dJMcac9PWOy/EqMVz1ipNWBKlokAtdsr11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ziYhI/dJMcac9PWOy/EqMVz1ipNWBKlokAtdsr11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ziYhI/dJMcac9PWOy/EqMVz1ipNWBKlokAtdsr11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FziYhI%2FdJMcac9PWOy%2FEqMVz1ipNWBKlokAtdsr11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;557&quot; height=&quot;423&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.43.20.png&quot; data-origin-width=&quot;557&quot; data-origin-height=&quot;423&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  해석 예시&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3895&quot; data-start=&quot;3830&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3895&quot; data-start=&quot;3830&quot;&gt;Pclass별 Age의 &lt;b&gt;중앙값 차이&lt;/b&gt;, &lt;b&gt;퍼짐(변동성)&lt;/b&gt;, &lt;b&gt;이상치 존재&lt;/b&gt;를 빠르게 확인 가능합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;3900&quot; data-start=&quot;3897&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;3927&quot; data-start=&quot;3902&quot; data-ke-size=&quot;size26&quot;&gt;5️⃣ Scatter Plot (산포도)&lt;/h2&gt;
&lt;h3 data-end=&quot;3940&quot; data-start=&quot;3929&quot; data-ke-size=&quot;size23&quot;&gt;✅ 개념/목적&lt;/h3&gt;
&lt;p data-end=&quot;3980&quot; data-start=&quot;3942&quot; data-ke-size=&quot;size16&quot;&gt;Scatter plot은 연속형 X와 연속형 Y 관계를 시각화합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;4031&quot; data-start=&quot;3982&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4003&quot; data-start=&quot;3982&quot;&gt;&amp;ldquo;나이가 많을수록 요금이 비싼가?&amp;rdquo;&lt;/li&gt;
&lt;li data-end=&quot;4031&quot; data-start=&quot;4004&quot;&gt;&amp;ldquo;특정 클래스에서 요금이 어떻게 분포하는가?&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;4051&quot; data-start=&quot;4033&quot; data-ke-size=&quot;size16&quot;&gt;같은 관계를 보는 데 적합합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771134869888&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# scatter plot : 산포도로서 X와 Y축에 보통 연속형 값을 시각화. hue, style등을 통해 breakdown 정보를 표출할 수 있습니다.

sns.scatterplot(x='Age', y='Fare', data=titanic_df)

sns.scatterplot(x='Age', y='Fare', data=titanic_df, hue='Pclass')&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.43.38.png&quot; data-origin-width=&quot;560&quot; data-origin-height=&quot;419&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cPtWed/dJMcaada7pf/ztnpS09dhx9mJJe8eOrlkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cPtWed/dJMcaada7pf/ztnpS09dhx9mJJe8eOrlkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cPtWed/dJMcaada7pf/ztnpS09dhx9mJJe8eOrlkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPtWed%2FdJMcaada7pf%2FztnpS09dhx9mJJe8eOrlkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;560&quot; height=&quot;419&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.43.38.png&quot; data-origin-width=&quot;560&quot; data-origin-height=&quot;419&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.43.48.png&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;424&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kzTwV/dJMcaada7pg/JKT4t5IQaHkTpFR7JbLrQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kzTwV/dJMcaada7pg/JKT4t5IQaHkTpFR7JbLrQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kzTwV/dJMcaada7pg/JKT4t5IQaHkTpFR7JbLrQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkzTwV%2FdJMcaada7pg%2FJKT4t5IQaHkTpFR7JbLrQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;564&quot; height=&quot;424&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.43.48.png&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;424&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;4288&quot; data-start=&quot;4275&quot; data-ke-size=&quot;size23&quot;&gt;✅ hue의 의미&lt;/h3&gt;
&lt;p data-end=&quot;4308&quot; data-start=&quot;4290&quot; data-ke-size=&quot;size16&quot;&gt;hue='Pclass'를 주면&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;4371&quot; data-start=&quot;4310&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4337&quot; data-start=&quot;4310&quot;&gt;같은 산점도 위에 Pclass별로 색이 나뉘어&lt;/li&gt;
&lt;li data-end=&quot;4371&quot; data-start=&quot;4338&quot;&gt;&amp;ldquo;관계가 그룹마다 다른지&amp;rdquo;를 더 명확히 볼 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;4376&quot; data-start=&quot;4373&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;4417&quot; data-start=&quot;4378&quot; data-ke-size=&quot;size26&quot;&gt;6️⃣ 상관 HeatMap (Correlation Heatmap)&lt;/h2&gt;
&lt;h3 data-end=&quot;4430&quot; data-start=&quot;4419&quot; data-ke-size=&quot;size23&quot;&gt;✅ 개념/목적&lt;/h3&gt;
&lt;p data-end=&quot;4472&quot; data-start=&quot;4432&quot; data-ke-size=&quot;size16&quot;&gt;상관관계는 &amp;ldquo;변수들 간 선형 관계 강도&amp;rdquo;를 숫자(-1~1)로 표현합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;4526&quot; data-start=&quot;4474&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4490&quot; data-start=&quot;4474&quot;&gt;1에 가까울수록 양의 상관&lt;/li&gt;
&lt;li data-end=&quot;4508&quot; data-start=&quot;4491&quot;&gt;-1에 가까울수록 음의 상관&lt;/li&gt;
&lt;li data-end=&quot;4526&quot; data-start=&quot;4509&quot;&gt;0이면 선형 상관 거의 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;4558&quot; data-start=&quot;4528&quot; data-ke-size=&quot;size16&quot;&gt;Heatmap은 이를 한 번에 &amp;ldquo;그림&amp;rdquo;으로 보여줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771134909347&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 상관 HeatMap
- 컬럼간의 상관도를 HeatMap형태로 표현

titanic_df.corr(numeric_only=True)

### 상관 Heatmap

plt.figure(figsize=(8, 8))

# DataFrame의 corr()은 숫자형 값만 상관도를 구함. 
corr = titanic_df.corr(numeric_only=True)

sns.heatmap(corr, annot=True, fmt='.1f',  linewidths=0.5, cmap='YlGnBu')
#sns.heatmap(corr, annot=True, fmt='.2g', cbar=True, linewidths=0.5, cmap='YlGnBu')&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.44.10.png&quot; data-origin-width=&quot;633&quot; data-origin-height=&quot;183&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cDQw1x/dJMcabb3TPz/s9ReKfaBHh6zZH6icEY23K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cDQw1x/dJMcabb3TPz/s9ReKfaBHh6zZH6icEY23K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cDQw1x/dJMcabb3TPz/s9ReKfaBHh6zZH6icEY23K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcDQw1x%2FdJMcabb3TPz%2Fs9ReKfaBHh6zZH6icEY23K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;633&quot; height=&quot;183&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.44.10.png&quot; data-origin-width=&quot;633&quot; data-origin-height=&quot;183&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.44.25.png&quot; data-origin-width=&quot;634&quot; data-origin-height=&quot;727&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cC9jmj/dJMcaiPKJkH/FxfdX6ghVtSG1QCL14Zky0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cC9jmj/dJMcaiPKJkH/FxfdX6ghVtSG1QCL14Zky0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cC9jmj/dJMcaiPKJkH/FxfdX6ghVtSG1QCL14Zky0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcC9jmj%2FdJMcaiPKJkH%2FFxfdX6ghVtSG1QCL14Zky0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;634&quot; height=&quot;727&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.44.25.png&quot; data-origin-width=&quot;634&quot; data-origin-height=&quot;727&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;4945&quot; data-start=&quot;4933&quot; data-ke-size=&quot;size23&quot;&gt;✅ 핵심 포인트&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;5068&quot; data-start=&quot;4947&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4998&quot; data-start=&quot;4947&quot;&gt;corr(numeric_only=True)는 &lt;b&gt;숫자형 컬럼만&lt;/b&gt; 상관을 계산합니다.&lt;/li&gt;
&lt;li data-end=&quot;5038&quot; data-start=&quot;4999&quot;&gt;annot=True로 숫자까지 같이 표시되어 해석이 쉬워집니다.&lt;/li&gt;
&lt;li data-end=&quot;5068&quot; data-start=&quot;5039&quot;&gt;fmt='.1f'는 소수 1자리로 표현합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;5102&quot; data-start=&quot;5084&quot; data-ke-size=&quot;size16&quot;&gt;이번 파트에서 핵심은 다음입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;5320&quot; data-start=&quot;5104&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;5144&quot; data-start=&quot;5104&quot;&gt;&lt;b&gt;Violin plot&lt;/b&gt;은 범주별 연속형 분포 비교에 강력합니다.&lt;/li&gt;
&lt;li data-end=&quot;5197&quot; data-start=&quot;5145&quot;&gt;&lt;b&gt;Box plot&lt;/b&gt;은 사분위수 기반으로 분포를 요약하고 이상치를 확인하는 데 좋습니다.&lt;/li&gt;
&lt;li data-end=&quot;5253&quot; data-start=&quot;5198&quot;&gt;&lt;b&gt;Subplots + ax&lt;/b&gt;를 쓰면 여러 그래프를 한 번에 배치해 EDA 속도가 빨라집니다.&lt;/li&gt;
&lt;li data-end=&quot;5320&quot; data-start=&quot;5254&quot;&gt;&lt;b&gt;Scatterplot&lt;/b&gt;은 변수 간 관계를, &lt;b&gt;Heatmap&lt;/b&gt;은 상관 구조를 빠르게 파악하는 데 유용합니다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Programming</category>
      <category>boxplot</category>
      <category>CorrelationHeatmap</category>
      <category>DataVisualization</category>
      <category>scatterplot</category>
      <category>Seaborn</category>
      <category>ViolinPlot</category>
      <category>데이터시각화</category>
      <category>바이올린플롯</category>
      <category>박스플롯</category>
      <category>상관히트맵</category>
      <author>Lucas.Kim</author>
      <guid isPermaLink="true">https://fromeastlight.tistory.com/89</guid>
      <comments>https://fromeastlight.tistory.com/89#entry89comment</comments>
      <pubDate>Sun, 15 Feb 2026 14:56:09 +0900</pubDate>
    </item>
    <item>
      <title>Seaborn countplot &amp;amp; barplot 완전 정리 1 | 범주형 데이터 시각화 핵심 가이드</title>
      <link>https://fromeastlight.tistory.com/88</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;데이터 시각화.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mUPD6/dJMcagLeIZp/caHZVBQyNfYpKfTKBa5kA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mUPD6/dJMcagLeIZp/caHZVBQyNfYpKfTKBa5kA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mUPD6/dJMcagLeIZp/caHZVBQyNfYpKfTKBa5kA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmUPD6%2FdJMcagLeIZp%2FcaHZVBQyNfYpKfTKBa5kA0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1536&quot; height=&quot;1024&quot; data-filename=&quot;데이터 시각화.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-end=&quot;179&quot; data-start=&quot;171&quot; data-ke-size=&quot;size26&quot;&gt;  개요&lt;/h2&gt;
&lt;p data-end=&quot;225&quot; data-start=&quot;181&quot; data-ke-size=&quot;size16&quot;&gt;데이터 분석에서 범주형 변수(Category Data)는 매우 자주 등장합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;255&quot; data-start=&quot;227&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;234&quot; data-start=&quot;227&quot;&gt;좌석 등급&lt;/li&gt;
&lt;li data-end=&quot;239&quot; data-start=&quot;235&quot;&gt;성별&lt;/li&gt;
&lt;li data-end=&quot;245&quot; data-start=&quot;240&quot;&gt;연령대&lt;/li&gt;
&lt;li data-end=&quot;255&quot; data-start=&quot;246&quot;&gt;제품 카테고리&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;295&quot; data-start=&quot;257&quot; data-ke-size=&quot;size16&quot;&gt;이러한 범주형 데이터를 시각화할 때 가장 많이 사용하는 함수가 바로:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;326&quot; data-start=&quot;297&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;312&quot; data-start=&quot;297&quot;&gt;countplot()&lt;/li&gt;
&lt;li data-end=&quot;326&quot; data-start=&quot;313&quot;&gt;barplot()&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;353&quot; data-start=&quot;328&quot; data-ke-size=&quot;size16&quot;&gt;이번 글에서는 Titanic 데이터를 활용하여&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;454&quot; data-start=&quot;355&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;370&quot; data-start=&quot;355&quot;&gt;countplot의 의미&lt;/li&gt;
&lt;li data-end=&quot;390&quot; data-start=&quot;371&quot;&gt;barplot의 평균/총합 표현&lt;/li&gt;
&lt;li data-end=&quot;415&quot; data-start=&quot;391&quot;&gt;confidence interval 제거&lt;/li&gt;
&lt;li data-end=&quot;432&quot; data-start=&quot;416&quot;&gt;hue를 활용한 그룹 비교&lt;/li&gt;
&lt;li data-end=&quot;454&quot; data-start=&quot;433&quot;&gt;stackedbar를 흉내 낸 방식&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;468&quot; data-start=&quot;456&quot; data-ke-size=&quot;size16&quot;&gt;까지 모두 정리합니다.&lt;/p&gt;
&lt;hr data-end=&quot;473&quot; data-start=&quot;470&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;502&quot; data-start=&quot;475&quot;&gt;1️⃣ countplot : 범주별 건수 표현&lt;/h1&gt;
&lt;p data-end=&quot;542&quot; data-start=&quot;504&quot; data-ke-size=&quot;size16&quot;&gt;countplot은 **카테고리 값의 빈도수(건수)**를 표현합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;572&quot; data-start=&quot;544&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;556&quot; data-start=&quot;544&quot;&gt;X축: 범주형 변수&lt;/li&gt;
&lt;li data-end=&quot;572&quot; data-start=&quot;557&quot;&gt;Y축: 해당 범주의 개수&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1771133796810&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#countplot : 카테고리 값에 대한 건수를 표현 , x축이 카테고리값, y축이 해당 카테고리값에대한 건수
sns.countplot(x='Pclass',
              data=titanic_df)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.26.54.png&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;423&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dzwsT2/dJMcaf6BXbE/HhldccML6M236fJlqFv26k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dzwsT2/dJMcaf6BXbE/HhldccML6M236fJlqFv26k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dzwsT2/dJMcaf6BXbE/HhldccML6M236fJlqFv26k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdzwsT2%2FdJMcaf6BXbE%2FHhldccML6M236fJlqFv26k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;562&quot; height=&quot;423&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.26.54.png&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;423&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  해석&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;785&quot; data-start=&quot;716&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;745&quot; data-start=&quot;716&quot;&gt;Pclass(객실 등급)별 승객 수를 보여줍니다.&lt;/li&gt;
&lt;li data-end=&quot;785&quot; data-start=&quot;746&quot;&gt;내부적으로 value_counts()를 시각화한 것과 같습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;815&quot; data-start=&quot;787&quot; data-ke-size=&quot;size16&quot;&gt;  범주형 변수의 &lt;b&gt;분포 확인&lt;/b&gt;에 사용합니다.&lt;/p&gt;
&lt;hr data-end=&quot;820&quot; data-start=&quot;817&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;851&quot; data-start=&quot;822&quot;&gt;2️⃣ barplot : 범주형 X + 연속형 Y&lt;/h1&gt;
&lt;p data-end=&quot;909&quot; data-start=&quot;853&quot; data-ke-size=&quot;size16&quot;&gt;barplot은 단순 건수가 아니라&lt;br /&gt;**범주별 연속형 값의 집계값(기본은 평균)**을 보여줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771133821031&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#barplot : x축은 이산값(주로 category값), y축은 연속값y값의 평균/총합)을 표현
plt.figure(figsize=(10,6))
#자동으로 xlael, ylabel을 x입력값 y입력값으로 설정
sns.barplot(x='Pclass',
            y='Survived',
            data=titanic_df)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.27.06.png&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;489&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cwm6wg/dJMb99L4ERS/F0KNkKcRPXAD6AAMnJmoIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cwm6wg/dJMb99L4ERS/F0KNkKcRPXAD6AAMnJmoIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cwm6wg/dJMb99L4ERS/F0KNkKcRPXAD6AAMnJmoIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcwm6wg%2FdJMb99L4ERS%2FF0KNkKcRPXAD6AAMnJmoIk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;799&quot; height=&quot;489&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.27.06.png&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;489&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  해석&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1190&quot; data-start=&quot;1131&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1157&quot; data-start=&quot;1131&quot;&gt;Pclass별 생존 확률 평균을 보여줍니다.&lt;/li&gt;
&lt;li data-end=&quot;1190&quot; data-start=&quot;1158&quot;&gt;Survived는 0/1이므로 평균은 곧 생존율입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1215&quot; data-start=&quot;1192&quot; data-ke-size=&quot;size16&quot;&gt;  평균 기반 집계 시각화에 적합합니다.&lt;/p&gt;
&lt;hr data-end=&quot;1220&quot; data-start=&quot;1217&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;1250&quot; data-start=&quot;1222&quot;&gt;3️⃣ Confidence Interval 제거&lt;/h1&gt;
&lt;p data-end=&quot;1292&quot; data-start=&quot;1252&quot; data-ke-size=&quot;size16&quot;&gt;Seaborn의 barplot은 기본적으로 95% 신뢰구간을 표시합니다.&lt;/p&gt;
&lt;p data-end=&quot;1320&quot; data-start=&quot;1294&quot; data-ke-size=&quot;size16&quot;&gt;이를 제거하려면 ci=None을 사용합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771133883300&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#confidence interval 없앰
sns.barplot(x='Pclass',
            y='Survived',
            data=titanic_df,
            ci=None,
            color='green')&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  신뢰구간을 제거하면 더 깔끔한 그래프를 얻을 수 있습니다.&lt;/p&gt;
&lt;hr data-end=&quot;1528&quot; data-start=&quot;1525&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;1547&quot; data-start=&quot;1530&quot;&gt;4️⃣ 평균 대신 총합 표현&lt;/h1&gt;
&lt;p data-end=&quot;1615&quot; data-start=&quot;1549&quot; data-ke-size=&quot;size16&quot;&gt;barplot은 기본적으로 평균을 사용하지만&lt;br /&gt;estimator 파라미터를 변경하면 다른 집계 함수도 가능합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771133895427&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#confidence interval 없에고 평균이아닌 총합으로 표현
sns.barplot(x='Pclass',
            y='Survived',
            data=titanic_df,
            ci=None,
            color='green',
            estimator=sum)#default = average&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.28.02.png&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;428&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/viaJz/dJMcabJWdcf/DGK4Ob13YlSD174IYRklF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/viaJz/dJMcabJWdcf/DGK4Ob13YlSD174IYRklF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/viaJz/dJMcabJWdcf/DGK4Ob13YlSD174IYRklF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FviaJz%2FdJMcabJWdcf%2FDGK4Ob13YlSD174IYRklF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;563&quot; height=&quot;428&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.28.02.png&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;428&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  여기서는 평균이 아니라 &lt;b&gt;총 생존자 수&lt;/b&gt;를 표현합니다.&lt;/p&gt;
&lt;p data-end=&quot;1911&quot; data-start=&quot;1880&quot; data-ke-size=&quot;size16&quot;&gt;  estimator 기본값은 np.mean입니다.&lt;/p&gt;
&lt;hr data-end=&quot;1916&quot; data-start=&quot;1913&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;1936&quot; data-start=&quot;1918&quot;&gt;5️⃣ hue를 이용한 세분화&lt;/h1&gt;
&lt;p data-end=&quot;1982&quot; data-start=&quot;1938&quot; data-ke-size=&quot;size16&quot;&gt;hue를 사용하면 하나의 범주를 다시 다른 범주로 나누어 시각화할 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771133919332&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#barplot에서 hue를 이용하여 x값을 특정 컬럼별로 세분화하여 시각화
sns.barplot(x='Pclass',
            y='Age',
            hue='Sex',
            data=titanic_df)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.28.10.png&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;421&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kZgjN/dJMcah4qZUj/sH5roxsLvYyMvUEgfuWIEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kZgjN/dJMcah4qZUj/sH5roxsLvYyMvUEgfuWIEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kZgjN/dJMcah4qZUj/sH5roxsLvYyMvUEgfuWIEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkZgjN%2FdJMcah4qZUj%2FsH5roxsLvYyMvUEgfuWIEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;555&quot; height=&quot;421&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.28.10.png&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;421&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  해석&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2177&quot; data-start=&quot;2146&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2177&quot; data-start=&quot;2146&quot;&gt;Pclass별 평균 나이를 성별로 나누어 표현합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2208&quot; data-start=&quot;2179&quot; data-ke-size=&quot;size16&quot;&gt;  범주형 변수 2개를 동시에 비교할 수 있습니다.&lt;/p&gt;
&lt;hr data-end=&quot;2213&quot; data-start=&quot;2210&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;2241&quot; data-start=&quot;2215&quot;&gt;6️⃣ stacked bar를 흉내 낸 방식&lt;/h1&gt;
&lt;p data-end=&quot;2311&quot; data-start=&quot;2243&quot; data-ke-size=&quot;size16&quot;&gt;Seaborn은 기본적으로 stacked bar를 지원하지 않습니다.&lt;br /&gt;하지만 아래처럼 2번 그려서 흉내낼 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771133940314&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#stackedbar 를 흉내 냈으나 stackedbar라고 할수없음
bar1 = sns.barplot(x='Pclass',
                   y='Age',
                   data=titanic_df[titanic_df['Sex']=='male'],
                   color='darkblue')
bar2 = sns.barplot(x='Pclass',
                   y='Age',
                   data=titanic_df[titanic_df['Sex']=='female'],
                   color='lightblue')&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.28.27.png&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;425&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mjwBr/dJMcajunuvh/0OM4vTuetI9EoInfZQvW9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mjwBr/dJMcajunuvh/0OM4vTuetI9EoInfZQvW9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mjwBr/dJMcajunuvh/0OM4vTuetI9EoInfZQvW9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmjwBr%2FdJMcajunuvh%2F0OM4vTuetI9EoInfZQvW9k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;554&quot; height=&quot;425&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.28.27.png&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;425&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  실제 stacked bar는 아니며, 단순히 겹쳐서 그린 것입니다.&lt;/p&gt;
&lt;hr data-end=&quot;2733&quot; data-start=&quot;2730&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;2767&quot; data-start=&quot;2735&quot;&gt;7️⃣ Pclass + Sex + Survived 분석&lt;/h1&gt;
&lt;pre id=&quot;code_1771133959777&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#pclass가 x값 Survived가 y축값 hue파라미터로 sex로 설정 후 개별 pclass값 별로 sex에 따른 survived평균값 구함
sns.barplot(x='Pclass',
            y='Survived',
            hue='Sex',
            data=titanic_df)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.28.37.png&quot; data-origin-width=&quot;557&quot; data-origin-height=&quot;423&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LUSjF/dJMcacB3ICF/CFzw6cN1LNE9eCjW8Pww7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LUSjF/dJMcacB3ICF/CFzw6cN1LNE9eCjW8Pww7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LUSjF/dJMcacB3ICF/CFzw6cN1LNE9eCjW8Pww7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLUSjF%2FdJMcacB3ICF%2FCFzw6cN1LNE9eCjW8Pww7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;557&quot; height=&quot;423&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.28.37.png&quot; data-origin-width=&quot;557&quot; data-origin-height=&quot;423&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  해석&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3036&quot; data-start=&quot;2975&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3008&quot; data-start=&quot;2975&quot;&gt;1등석 여성의 생존율이 매우 높음을 확인할 수 있습니다.&lt;/li&gt;
&lt;li data-end=&quot;3036&quot; data-start=&quot;3009&quot;&gt;성별과 객실 등급이 생존에 큰 영향을 줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;3041&quot; data-start=&quot;3038&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;3057&quot; data-start=&quot;3043&quot;&gt;8️⃣ 연령대별 생존율&lt;/h1&gt;
&lt;pre id=&quot;code_1771133991549&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plt.figure(figsize=(10, 4))
order_columns = ['Baby', 'Child', 'Teenager', 'Student', 'Young Adult', 'Adult', 'Elderly']
sns.barplot(x='Age_cat', y='Survived', hue='Sex', data=titanic_df, order=order_columns)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  order를 지정하면 원하는 순서로 정렬할 수 있습니다.&lt;/p&gt;
&lt;hr data-end=&quot;3321&quot; data-start=&quot;3318&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;3338&quot; data-start=&quot;3323&quot;&gt;9️⃣ Sex 중심 분석&lt;/h1&gt;
&lt;pre id=&quot;code_1771134006148&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sns.barplot(x='Sex', y='Survived', hue='Age_cat', data=titanic_df)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.31.20.png&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;423&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFbtpQ/dJMcafle7hs/53ipGbCyF0auvKHXcElyOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFbtpQ/dJMcafle7hs/53ipGbCyF0auvKHXcElyOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFbtpQ/dJMcafle7hs/53ipGbCyF0auvKHXcElyOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFbtpQ%2FdJMcafle7hs%2F53ipGbCyF0auvKHXcElyOk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;559&quot; height=&quot;423&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.31.20.png&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;423&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  해석&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3478&quot; data-start=&quot;3429&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3451&quot; data-start=&quot;3429&quot;&gt;여성의 생존율이 전반적으로 높습니다.&lt;/li&gt;
&lt;li data-end=&quot;3478&quot; data-start=&quot;3452&quot;&gt;어린 연령대의 생존율이 상대적으로 높습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;3483&quot; data-start=&quot;3480&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;3492&quot; data-start=&quot;3485&quot;&gt;  정리&lt;/h1&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 105px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;함수&lt;/td&gt;
&lt;td&gt;의미&lt;/td&gt;
&lt;td&gt;사용 목적&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;countplot&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;범주별 개수&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;분포 확인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;barplot&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;범주별 평균&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;집계 비교&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;hue&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;그룹 세분화&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;다중 범주 비교&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;estimator&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;집계 함수 변경&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;평균/합계 등 변경&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;ci=None&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;신뢰구간 제거&lt;/td&gt;
&lt;td style=&quot;height: 19px;&quot;&gt;깔끔한 시각화&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1 data-end=&quot;3718&quot; data-start=&quot;3707&quot;&gt;  핵심 포인트&lt;/h1&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3827&quot; data-start=&quot;3720&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3739&quot; data-start=&quot;3720&quot;&gt;countplot &amp;rarr; 단순 빈도&lt;/li&gt;
&lt;li data-end=&quot;3766&quot; data-start=&quot;3740&quot;&gt;barplot &amp;rarr; 집계값 표현 (기본 평균)&lt;/li&gt;
&lt;li data-end=&quot;3784&quot; data-start=&quot;3767&quot;&gt;estimator 변경 가능&lt;/li&gt;
&lt;li data-end=&quot;3801&quot; data-start=&quot;3785&quot;&gt;hue로 다차원 분석 가능&lt;/li&gt;
&lt;li data-end=&quot;3827&quot; data-start=&quot;3802&quot;&gt;stacked bar는 기본 지원하지 않음&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Programming</category>
      <category>confidence interval 제거</category>
      <category>seaborn barplot</category>
      <category>seaborn countplot</category>
      <category>seaborn estimator sum</category>
      <category>seaborn hue 사용법</category>
      <category>seaborn 카테고리 그래프</category>
      <category>seaborn 통계 그래프</category>
      <category>titanic 데이터 분석</category>
      <category>범주형 데이터 시각화</category>
      <category>파이썬 데이터 시각화</category>
      <author>Lucas.Kim</author>
      <guid isPermaLink="true">https://fromeastlight.tistory.com/88</guid>
      <comments>https://fromeastlight.tistory.com/88#entry88comment</comments>
      <pubDate>Sun, 15 Feb 2026 14:41:07 +0900</pubDate>
    </item>
    <item>
      <title>Seaborn 차트 유형 완전 정리 | Histogram, Violin, Bar, Scatter, Line Plot 한 번에 이해하기</title>
      <link>https://fromeastlight.tistory.com/87</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;데이터 시각화.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbvvwX/dJMcafevVZR/CrP01EPekA3UJZymgAyi00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbvvwX/dJMcafevVZR/CrP01EPekA3UJZymgAyi00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbvvwX/dJMcafevVZR/CrP01EPekA3UJZymgAyi00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbvvwX%2FdJMcafevVZR%2FCrP01EPekA3UJZymgAyi00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1536&quot; height=&quot;1024&quot; data-filename=&quot;데이터 시각화.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-end=&quot;190&quot; data-start=&quot;182&quot; data-ke-size=&quot;size26&quot;&gt;  개요&lt;/h2&gt;
&lt;p data-end=&quot;262&quot; data-start=&quot;192&quot; data-ke-size=&quot;size16&quot;&gt;데이터 시각화는 단순히 그래프를 그리는 것이 아니라,&lt;br /&gt;&lt;b&gt;데이터의 차원과 변수 유형에 맞는 차트를 선택하는 과정&lt;/b&gt;입니다.&lt;/p&gt;
&lt;p data-end=&quot;282&quot; data-start=&quot;264&quot; data-ke-size=&quot;size16&quot;&gt;이번 글에서는 다음을 정리합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;390&quot; data-start=&quot;284&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;304&quot; data-start=&quot;284&quot;&gt;주요 차트 유형과 변수 차원 이해&lt;/li&gt;
&lt;li data-end=&quot;323&quot; data-start=&quot;305&quot;&gt;각 차트가 적합한 데이터 구조&lt;/li&gt;
&lt;li data-end=&quot;366&quot; data-start=&quot;324&quot;&gt;Seaborn의 Axes-level / Figure-level 구조 차이&lt;/li&gt;
&lt;li data-end=&quot;390&quot; data-start=&quot;367&quot;&gt;Titanic 데이터로 히스토그램 실습&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;395&quot; data-start=&quot;392&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;416&quot; data-start=&quot;397&quot;&gt;1️⃣ 차트 유형과 데이터 차원&lt;/h1&gt;
&lt;hr data-end=&quot;421&quot; data-start=&quot;418&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;448&quot; data-start=&quot;423&quot; data-ke-size=&quot;size26&quot;&gt;✔ 1. 히스토그램 (Histogram)&lt;/h2&gt;
&lt;blockquote data-end=&quot;473&quot; data-start=&quot;450&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;473&quot; data-start=&quot;452&quot; data-ke-size=&quot;size16&quot;&gt;연속형 값의 도수 분포를 시각화합니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;512&quot; data-start=&quot;475&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;495&quot; data-start=&quot;475&quot;&gt;X축: 연속형 값의 구간(bin)&lt;/li&gt;
&lt;li data-end=&quot;512&quot; data-start=&quot;496&quot;&gt;Y축: 해당 구간의 빈도수&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;544&quot; data-start=&quot;514&quot; data-ke-size=&quot;size16&quot;&gt;  예시&lt;br /&gt;나이, 요금, 점수, 가격 등 분포 확인&lt;/p&gt;
&lt;p data-end=&quot;588&quot; data-start=&quot;546&quot; data-ke-size=&quot;size16&quot;&gt;  데이터의 &lt;b&gt;분포 모양, 왜도, 이상치 여부&lt;/b&gt;를 파악할 수 있습니다.&lt;/p&gt;
&lt;hr data-end=&quot;593&quot; data-start=&quot;590&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;624&quot; data-start=&quot;595&quot; data-ke-size=&quot;size26&quot;&gt;✔ 2. 바이올린 플롯 (Violin Plot)&lt;/h2&gt;
&lt;blockquote data-end=&quot;653&quot; data-start=&quot;626&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;653&quot; data-start=&quot;628&quot; data-ke-size=&quot;size16&quot;&gt;특정 범주별 연속형 값의 분포를 시각화합니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;712&quot; data-start=&quot;655&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;681&quot; data-start=&quot;655&quot;&gt;분포 + 밀도 + 중앙값 정보를 동시에 표현&lt;/li&gt;
&lt;li data-end=&quot;712&quot; data-start=&quot;682&quot;&gt;박스플롯보다 분포 형태를 더 직관적으로 보여줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;747&quot; data-start=&quot;714&quot; data-ke-size=&quot;size16&quot;&gt;  예시&lt;br /&gt;성별별 나이 분포&lt;br /&gt;클래스별 시험 점수 분포&lt;/p&gt;
&lt;p data-end=&quot;784&quot; data-start=&quot;749&quot; data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;범주형 X + 연속형 Y 구조&lt;/b&gt;에서 매우 유용합니다.&lt;/p&gt;
&lt;hr data-end=&quot;789&quot; data-start=&quot;786&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;813&quot; data-start=&quot;791&quot; data-ke-size=&quot;size26&quot;&gt;✔ 3. 바플롯 (Bar Plot)&lt;/h2&gt;
&lt;blockquote data-end=&quot;841&quot; data-start=&quot;815&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;841&quot; data-start=&quot;817&quot; data-ke-size=&quot;size16&quot;&gt;이산형 X와 연속형 Y의 관계를 보여줍니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;880&quot; data-start=&quot;843&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;855&quot; data-start=&quot;843&quot;&gt;X축: 범주형 변수&lt;/li&gt;
&lt;li data-end=&quot;880&quot; data-start=&quot;856&quot;&gt;Y축: 평균값(기본), 중앙값 등 집계값&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;910&quot; data-start=&quot;882&quot; data-ke-size=&quot;size16&quot;&gt;  예시&lt;br /&gt;성별 평균 나이&lt;br /&gt;학년별 평균 점수&lt;/p&gt;
&lt;p data-end=&quot;959&quot; data-start=&quot;912&quot; data-ke-size=&quot;size16&quot;&gt;  Seaborn의 barplot은 기본적으로 &lt;b&gt;평균값을 계산하여 표시&lt;/b&gt;합니다.&lt;/p&gt;
&lt;hr data-end=&quot;964&quot; data-start=&quot;961&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;994&quot; data-start=&quot;966&quot; data-ke-size=&quot;size26&quot;&gt;✔ 4. 스캐터플롯 (Scatter Plot)&lt;/h2&gt;
&lt;blockquote data-end=&quot;1023&quot; data-start=&quot;996&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;1023&quot; data-start=&quot;998&quot; data-ke-size=&quot;size16&quot;&gt;연속형 변수 2개 사이의 관계를 시각화합니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1044&quot; data-start=&quot;1025&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1034&quot; data-start=&quot;1025&quot;&gt;X축: 연속형&lt;/li&gt;
&lt;li data-end=&quot;1044&quot; data-start=&quot;1035&quot;&gt;Y축: 연속형&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1075&quot; data-start=&quot;1046&quot; data-ke-size=&quot;size16&quot;&gt;  예시&lt;br /&gt;나이 vs 요금&lt;br /&gt;공부시간 vs 점수&lt;/p&gt;
&lt;p data-end=&quot;1110&quot; data-start=&quot;1077&quot; data-ke-size=&quot;size16&quot;&gt;  변수 간 상관관계, 패턴, 이상치를 확인하기 좋습니다.&lt;/p&gt;
&lt;hr data-end=&quot;1115&quot; data-start=&quot;1112&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1141&quot; data-start=&quot;1117&quot; data-ke-size=&quot;size26&quot;&gt;✔ 5. 라인플롯 (Line Plot)&lt;/h2&gt;
&lt;blockquote data-end=&quot;1163&quot; data-start=&quot;1143&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;1163&quot; data-start=&quot;1145&quot; data-ke-size=&quot;size16&quot;&gt;시계열 데이터에 가장 적합합니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1192&quot; data-start=&quot;1165&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1180&quot; data-start=&quot;1165&quot;&gt;X축: 시간(년/월/일)&lt;/li&gt;
&lt;li data-end=&quot;1192&quot; data-start=&quot;1181&quot;&gt;Y축: 연속형 값&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1219&quot; data-start=&quot;1194&quot; data-ke-size=&quot;size16&quot;&gt;  예시&lt;br /&gt;월별 매출&lt;br /&gt;연도별 인구 변화&lt;/p&gt;
&lt;p data-end=&quot;1251&quot; data-start=&quot;1221&quot; data-ke-size=&quot;size16&quot;&gt;  추세(trend)를 파악하는 데 매우 강력합니다.&lt;/p&gt;
&lt;hr data-end=&quot;1256&quot; data-start=&quot;1253&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;1274&quot; data-start=&quot;1258&quot;&gt;2️⃣ Seaborn이란?&lt;/h1&gt;
&lt;p data-end=&quot;1328&quot; data-start=&quot;1276&quot; data-ke-size=&quot;size16&quot;&gt;Seaborn은 Matplotlib 기반의 &lt;b&gt;High-Level 시각화 라이브러리&lt;/b&gt;입니다.&lt;/p&gt;
&lt;h3 data-end=&quot;1336&quot; data-start=&quot;1330&quot; data-ke-size=&quot;size23&quot;&gt;특징&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1447&quot; data-start=&quot;1338&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1363&quot; data-start=&quot;1338&quot;&gt;Matplotlib보다 코드가 간결합니다.&lt;/li&gt;
&lt;li data-end=&quot;1393&quot; data-start=&quot;1364&quot;&gt;Default 설정만으로도 시각적으로 수려합니다.&lt;/li&gt;
&lt;li data-end=&quot;1423&quot; data-start=&quot;1394&quot;&gt;Pandas DataFrame과 쉽게 연동됩니다.&lt;/li&gt;
&lt;li data-end=&quot;1447&quot; data-start=&quot;1424&quot;&gt;통계 기반 시각화에 특화되어 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1452&quot; data-start=&quot;1449&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;1476&quot; data-start=&quot;1454&quot;&gt;3️⃣ Seaborn의 두 가지 구조&lt;/h1&gt;
&lt;hr data-end=&quot;1481&quot; data-start=&quot;1478&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1501&quot; data-start=&quot;1483&quot; data-ke-size=&quot;size26&quot;&gt;✔ Axes-level 함수&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1582&quot; data-start=&quot;1503&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1539&quot; data-start=&quot;1503&quot;&gt;기존 Matplotlib처럼 &lt;b&gt;개별 Axes에 직접 그림&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1582&quot; data-start=&quot;1540&quot;&gt;예: sns.histplot(), sns.scatterplot()&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1600&quot; data-start=&quot;1584&quot; data-ke-size=&quot;size16&quot;&gt;  Axes 객체 중심 구조&lt;/p&gt;
&lt;hr data-end=&quot;1605&quot; data-start=&quot;1602&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1627&quot; data-start=&quot;1607&quot; data-ke-size=&quot;size26&quot;&gt;✔ Figure-level 함수&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1712&quot; data-start=&quot;1629&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1650&quot; data-start=&quot;1629&quot;&gt;내부적으로 FacetGrid를 사용&lt;/li&gt;
&lt;li data-end=&quot;1674&quot; data-start=&quot;1651&quot;&gt;여러 개 subplot 자동 생성 가능&lt;/li&gt;
&lt;li data-end=&quot;1712&quot; data-start=&quot;1675&quot;&gt;예: sns.displot(), sns.catplot()&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1730&quot; data-start=&quot;1714&quot; data-ke-size=&quot;size16&quot;&gt;  Figure 단위로 관리&lt;/p&gt;
&lt;hr data-end=&quot;1735&quot; data-start=&quot;1732&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;1768&quot; data-start=&quot;1737&quot;&gt;4️⃣ Titanic 데이터로 Histogram 실습&lt;/h1&gt;
&lt;hr data-end=&quot;1773&quot; data-start=&quot;1770&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1786&quot; data-start=&quot;1775&quot; data-ke-size=&quot;size26&quot;&gt;✔ 데이터 로드&lt;/h2&gt;
&lt;pre id=&quot;code_1771132736703&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pandas as pd

titanic_df = pd.read_csv('./titanic/titanic_train.csv')
titanic_df.head(5)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.09.13.png&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;269&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A8q5B/dJMcabQFpkl/DGurW12NpkROT3jLkXnGX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A8q5B/dJMcabQFpkl/DGurW12NpkROT3jLkXnGX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A8q5B/dJMcabQFpkl/DGurW12NpkROT3jLkXnGX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA8q5B%2FdJMcabQFpkl%2FDGurW12NpkROT3jLkXnGX1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;834&quot; height=&quot;269&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.09.13.png&quot; data-origin-width=&quot;834&quot; data-origin-height=&quot;269&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-end=&quot;1902&quot; data-start=&quot;1899&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1937&quot; data-start=&quot;1904&quot; data-ke-size=&quot;size26&quot;&gt;✔ Figure-level 히스토그램 (displot)&lt;/h2&gt;
&lt;pre id=&quot;code_1771132756608&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import seaborn as sns

sns.displot(titanic_df['Age'],bins=10, rug=True, kde=True)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.09.26.png&quot; data-origin-width=&quot;484&quot; data-origin-height=&quot;482&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nSLDS/dJMcaibdvC6/vOklWnYd0eSXHVX0C3W5O0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nSLDS/dJMcaibdvC6/vOklWnYd0eSXHVX0C3W5O0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nSLDS/dJMcaibdvC6/vOklWnYd0eSXHVX0C3W5O0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnSLDS%2FdJMcaibdvC6%2FvOklWnYd0eSXHVX0C3W5O0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;484&quot; height=&quot;482&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.09.26.png&quot; data-origin-width=&quot;484&quot; data-origin-height=&quot;482&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;2045&quot; data-start=&quot;2036&quot; data-ke-size=&quot;size23&quot;&gt;옵션 설명&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2120&quot; data-start=&quot;2047&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2066&quot; data-start=&quot;2047&quot;&gt;bins=10 &amp;rarr; 구간 개수&lt;/li&gt;
&lt;li data-end=&quot;2096&quot; data-start=&quot;2067&quot;&gt;rug=True &amp;rarr; 데이터 위치를 선으로 표시&lt;/li&gt;
&lt;li data-end=&quot;2120&quot; data-start=&quot;2097&quot;&gt;kde=True &amp;rarr; 밀도 곡선 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;2125&quot; data-start=&quot;2122&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;2139&quot; data-start=&quot;2127&quot; data-ke-size=&quot;size26&quot;&gt;✔ 또 다른 방식&lt;/h2&gt;
&lt;pre id=&quot;code_1771132816721&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sns.displot(x='Age', data=titanic_df)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.09.45.png&quot; data-origin-width=&quot;481&quot; data-origin-height=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmun6m/dJMcac9PWy0/jaKNvkdqpDXZkFcKrWkw4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmun6m/dJMcac9PWy0/jaKNvkdqpDXZkFcKrWkw4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmun6m/dJMcac9PWy0/jaKNvkdqpDXZkFcKrWkw4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcmun6m%2FdJMcac9PWy0%2FjaKNvkdqpDXZkFcKrWkw4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;481&quot; height=&quot;480&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.09.45.png&quot; data-origin-width=&quot;481&quot; data-origin-height=&quot;480&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  Pandas 컬럼명 기반 접근&lt;/p&gt;
&lt;hr data-end=&quot;2218&quot; data-start=&quot;2215&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;2241&quot; data-start=&quot;2220&quot; data-ke-size=&quot;size26&quot;&gt;✔ Axes-level 히스토그램&lt;/h2&gt;
&lt;pre id=&quot;code_1771132843215&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plt.figure(figsize=(12,6))
sns.histplot(x='Age',data=titanic_df, kde=True,bins=30)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.10.29.png&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;414&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1orra/dJMcaada6GQ/nzZWteQpmMWsP0yP5mRzik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1orra/dJMcaada6GQ/nzZWteQpmMWsP0yP5mRzik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1orra/dJMcaada6GQ/nzZWteQpmMWsP0yP5mRzik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1orra%2FdJMcaada6GQ%2FnzZWteQpmMWsP0yP5mRzik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;795&quot; height=&quot;414&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.10.29.png&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;414&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;2347&quot; data-start=&quot;2341&quot; data-ke-size=&quot;size23&quot;&gt;특징&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2416&quot; data-start=&quot;2349&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2382&quot; data-start=&quot;2349&quot;&gt;plt.figure()로 Figure 크기 직접 제어&lt;/li&gt;
&lt;li data-end=&quot;2416&quot; data-start=&quot;2383&quot;&gt;sns.histplot()은 Axes-level 함수&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;2421&quot; data-start=&quot;2418&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;2446&quot; data-start=&quot;2423&quot; data-ke-size=&quot;size26&quot;&gt;✔ Figure-level 상세 설정&lt;/h2&gt;
&lt;pre id=&quot;code_1771132894320&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import seaborn as sns
sns.displot(titanic_df['Age'],
            kde=True,
            rug=True, #rug플롯
            height=4,
            aspect=2)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.10.46.png&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;383&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kMvpI/dJMcadt8D9w/gSBeLNH9XQ1vhnBqmGSxs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kMvpI/dJMcadt8D9w/gSBeLNH9XQ1vhnBqmGSxs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kMvpI/dJMcadt8D9w/gSBeLNH9XQ1vhnBqmGSxs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkMvpI%2FdJMcadt8D9w%2FgSBeLNH9XQ1vhnBqmGSxs1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;780&quot; height=&quot;383&quot; data-filename=&quot;스크린샷 2026-02-14 오후 9.10.46.png&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;383&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;2620&quot; data-start=&quot;2611&quot; data-ke-size=&quot;size23&quot;&gt;옵션 설명&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2659&quot; data-start=&quot;2622&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2637&quot; data-start=&quot;2622&quot;&gt;height &amp;rarr; 높이&lt;/li&gt;
&lt;li data-end=&quot;2659&quot; data-start=&quot;2638&quot;&gt;aspect &amp;rarr; 가로/세로 비율&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;2664&quot; data-start=&quot;2661&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;2700&quot; data-start=&quot;2666&quot;&gt;  Axes-level vs Figure-level 비교&lt;/h1&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;구분&lt;/td&gt;
&lt;td&gt;Axes-level&lt;/td&gt;
&lt;td&gt;Figure-level&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;함수 예&lt;/td&gt;
&lt;td&gt;histplot&lt;/td&gt;
&lt;td&gt;displot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;관리 단위&lt;/td&gt;
&lt;td&gt;Axes&lt;/td&gt;
&lt;td&gt;Figure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;subplot 확장성&lt;/td&gt;
&lt;td&gt;낮음&lt;/td&gt;
&lt;td&gt;높음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;내부 구조&lt;/td&gt;
&lt;td&gt;Matplotlib&lt;/td&gt;
&lt;td&gt;FacetGrid&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 시각화에서 중요한 것은&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;3017&quot; data-start=&quot;2924&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;2945&quot; data-start=&quot;2924&quot;&gt;변수 유형 파악 (연속형/이산형)&lt;/li&gt;
&lt;li data-end=&quot;2973&quot; data-start=&quot;2946&quot;&gt;차원 구조 이해 (1차원/2차원/범주+연속)&lt;/li&gt;
&lt;li data-end=&quot;2986&quot; data-start=&quot;2974&quot;&gt;적절한 차트 선택&lt;/li&gt;
&lt;li data-end=&quot;3017&quot; data-start=&quot;2987&quot;&gt;Axes-level과 Figure-level 구분&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-end=&quot;3093&quot; data-start=&quot;3019&quot; data-ke-size=&quot;size16&quot;&gt;Seaborn은 통계적 시각화에 최적화된 라이브러리이며,&lt;br /&gt;Matplotlib을 기반으로 하지만 훨씬 직관적이고 생산성이 높습니다.&lt;/p&gt;</description>
      <category>Programming</category>
      <category>barplot 평균</category>
      <category>lineplot 시계열</category>
      <category>python visualization</category>
      <category>scatterplot 상관관계</category>
      <category>seaborn axes level</category>
      <category>seaborn figure level</category>
      <category>seaborn 튜토리얼</category>
      <category>violin plot 설명</category>
      <category>데이터시각화</category>
      <category>히스토그램 그리기</category>
      <author>Lucas.Kim</author>
      <guid isPermaLink="true">https://fromeastlight.tistory.com/87</guid>
      <comments>https://fromeastlight.tistory.com/87#entry87comment</comments>
      <pubDate>Sun, 15 Feb 2026 14:23:43 +0900</pubDate>
    </item>
    <item>
      <title>Matplotlib 여러 Plot 한 Axes에 그리기 &amp;amp; Subplots 완전 정리</title>
      <link>https://fromeastlight.tistory.com/86</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;데이터 시각화.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XnUzg/dJMcafZPsQS/WyoYg0FN1gpjkAO9yJOQok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XnUzg/dJMcafZPsQS/WyoYg0FN1gpjkAO9yJOQok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XnUzg/dJMcafZPsQS/WyoYg0FN1gpjkAO9yJOQok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXnUzg%2FdJMcafZPsQS%2FWyoYg0FN1gpjkAO9yJOQok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1536&quot; height=&quot;1024&quot; data-filename=&quot;데이터 시각화.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-end=&quot;175&quot; data-start=&quot;167&quot; data-ke-size=&quot;size26&quot;&gt;  개요&lt;/h2&gt;
&lt;p data-end=&quot;245&quot; data-start=&quot;177&quot; data-ke-size=&quot;size16&quot;&gt;Matplotlib에서 하나의 그래프만 그리는 것은 시작에 불과합니다.&lt;br /&gt;실무에서는 다음과 같은 작업이 매우 중요합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;397&quot; data-start=&quot;247&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;277&quot; data-start=&quot;247&quot;&gt;하나의 Axes 안에 여러 개의 그래프 겹쳐 그리기&lt;/li&gt;
&lt;li data-end=&quot;312&quot; data-start=&quot;278&quot;&gt;서로 다른 그래프 유형(Line + Bar) 함께 표현하기&lt;/li&gt;
&lt;li data-end=&quot;331&quot; data-start=&quot;313&quot;&gt;Axes 객체를 직접 제어하기&lt;/li&gt;
&lt;li data-end=&quot;369&quot; data-start=&quot;332&quot;&gt;여러 개의 Subplots을 구성하여 대시보드 형태로 시각화하기&lt;/li&gt;
&lt;li data-end=&quot;397&quot; data-start=&quot;370&quot;&gt;1차원 / 2차원 axes 배열 구조 이해하기&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;436&quot; data-start=&quot;399&quot; data-ke-size=&quot;size16&quot;&gt;이 글에서는 위 내용을 &lt;b&gt;실전 코드 기반으로 완전 정리&lt;/b&gt;합니다.&lt;/p&gt;
&lt;hr data-end=&quot;441&quot; data-start=&quot;438&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;473&quot; data-start=&quot;443&quot;&gt;1️⃣ 하나의 Axes에 여러 개의 Plot 그리기&lt;/h1&gt;
&lt;h2 data-end=&quot;502&quot; data-start=&quot;475&quot; data-ke-size=&quot;size26&quot;&gt;✔ 동일 Axes에 Line 여러 개 그리기&lt;/h2&gt;
&lt;pre id=&quot;code_1771131552771&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;x_value_01 = np.arange(1,100)
y_value_01 = 2 * x_value_01
y_value_02 = 4 * x_value_01


plt.plot(x_value_01, y_value_01, color='green', label='temp_01')
plt.plot(x_value_01, y_value_02, color='red', label='temp_02')
plt.xlabel('x axis')
plt.ylabel('y axis')

plt.legend()

plt.title('Hello Plot')

plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.50.41.png&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;443&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6rnsU/dJMcaca0lze/xeCvBikLBtkG9JO4daZ661/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6rnsU/dJMcaca0lze/xeCvBikLBtkG9JO4daZ661/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6rnsU/dJMcaca0lze/xeCvBikLBtkG9JO4daZ661/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6rnsU%2FdJMcaca0lze%2FxeCvBikLBtkG9JO4daZ661%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;559&quot; height=&quot;443&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.50.41.png&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;443&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;840&quot; data-start=&quot;828&quot; data-ke-size=&quot;size23&quot;&gt;  코드 설명&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1062&quot; data-start=&quot;842&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;894&quot; data-start=&quot;842&quot;&gt;np.arange(1,100)&lt;br /&gt;&amp;rarr; 1부터 99까지의 숫자 배열 생성 (X축 값)&lt;/li&gt;
&lt;li data-end=&quot;955&quot; data-start=&quot;896&quot;&gt;2 * x_value_01, 4 * x_value_01&lt;br /&gt;&amp;rarr; 서로 다른 기울기의 직선 생성&lt;/li&gt;
&lt;li data-end=&quot;1016&quot; data-start=&quot;957&quot;&gt;plt.plot()을 두 번 호출&lt;br /&gt;&amp;rarr; 하나의 Axes 안에 두 개의 선 그래프를 겹쳐서 그림&lt;/li&gt;
&lt;li data-end=&quot;1062&quot; data-start=&quot;1018&quot;&gt;label 지정 후 plt.legend() 호출&lt;br /&gt;&amp;rarr; 범례 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1118&quot; data-start=&quot;1064&quot; data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;하나의 Axes 안에는 plot을 여러 번 호출하여 여러 그래프를 겹칠 수 있습니다.&lt;/b&gt;&lt;/p&gt;
&lt;hr data-end=&quot;1123&quot; data-start=&quot;1120&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;1158&quot; data-start=&quot;1125&quot;&gt;2️⃣ Line Plot + Bar Plot 함께 그리기&lt;/h1&gt;
&lt;pre id=&quot;code_1771131768410&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;x_value_01 = np.arange(1,10)
y_value_01 = 2 * x_value_01
y_value_02 = 4 * x_value_01

plt.plot(x_value_01,
         y_value_01,
         color='blue',
         label='temp_01',
         marker='o',
         linestyle='dashed',
         linewidth=2,
         markersize=6)
plt.bar(x_value_01,
         y_value_02,
         color='red',
         label='templ_02')
plt.legend()
plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.50.51.png&quot; data-origin-width=&quot;534&quot; data-origin-height=&quot;403&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bi7WDv/dJMcaihXzcB/e3ZAbQWO909DTsJaRkTD00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bi7WDv/dJMcaihXzcB/e3ZAbQWO909DTsJaRkTD00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bi7WDv/dJMcaihXzcB/e3ZAbQWO909DTsJaRkTD00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbi7WDv%2FdJMcaihXzcB%2Fe3ZAbQWO909DTsJaRkTD00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;534&quot; height=&quot;403&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.50.51.png&quot; data-origin-width=&quot;534&quot; data-origin-height=&quot;403&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;1573&quot; data-start=&quot;1561&quot; data-ke-size=&quot;size23&quot;&gt;  코드 설명&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1654&quot; data-start=&quot;1575&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1597&quot; data-start=&quot;1575&quot;&gt;plt.plot() &amp;rarr; 선 그래프&lt;/li&gt;
&lt;li data-end=&quot;1620&quot; data-start=&quot;1598&quot;&gt;plt.bar() &amp;rarr; 막대 그래프&lt;/li&gt;
&lt;li data-end=&quot;1654&quot; data-start=&quot;1621&quot;&gt;동일 Axes 안에서 서로 다른 유형의 그래프 혼합 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;1669&quot; data-start=&quot;1656&quot; data-ke-size=&quot;size23&quot;&gt;주요 스타일 옵션&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1767&quot; data-start=&quot;1671&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1692&quot; data-start=&quot;1671&quot;&gt;marker='o' &amp;rarr; 점 표시&lt;/li&gt;
&lt;li data-end=&quot;1720&quot; data-start=&quot;1693&quot;&gt;linestyle='dashed' &amp;rarr; 점선&lt;/li&gt;
&lt;li data-end=&quot;1743&quot; data-start=&quot;1721&quot;&gt;linewidth=2 &amp;rarr; 선 두께&lt;/li&gt;
&lt;li data-end=&quot;1767&quot; data-start=&quot;1744&quot;&gt;markersize=6 &amp;rarr; 점 크기&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1811&quot; data-start=&quot;1769&quot; data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;Line + Bar 혼합 시각화는 비교 분석에 매우 유용합니다.&lt;/b&gt;&lt;/p&gt;
&lt;hr data-end=&quot;1816&quot; data-start=&quot;1813&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;1841&quot; data-start=&quot;1818&quot;&gt;3️⃣ Axes 객체에서 직접 작업하기&lt;/h1&gt;
&lt;p data-end=&quot;1882&quot; data-start=&quot;1843&quot; data-ke-size=&quot;size16&quot;&gt;pyplot 방식이 아니라, Axes 객체를 직접 제어하는 방식입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771131856862&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;figure = plt.figure(figsize=(10,6))
ax = plt.axes()
ax.plot(x_value_01,
        y_value_01,
        color='red',
        marker='o',
        linestyle='dashed',
        linewidth=2,
        markersize=6,
        label='temp_01'
        )
ax.bar(x_value_01,
       y_value_01,
       color='green',
       label='temp_02')
ax.legend()
ax.set_title(
    'Hello Plot'
)
plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.51.13.png&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;499&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CRC3m/dJMcaaxtQEr/97QXEx1kDzS2UL9OgtvkV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CRC3m/dJMcaaxtQEr/97QXEx1kDzS2UL9OgtvkV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CRC3m/dJMcaaxtQEr/97QXEx1kDzS2UL9OgtvkV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCRC3m%2FdJMcaaxtQEr%2F97QXEx1kDzS2UL9OgtvkV0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;794&quot; height=&quot;499&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.51.13.png&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;499&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;2289&quot; data-start=&quot;2277&quot; data-ke-size=&quot;size23&quot;&gt;  핵심 개념&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2411&quot; data-start=&quot;2291&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2319&quot; data-start=&quot;2291&quot;&gt;plt.figure() &amp;rarr; Figure 생성&lt;/li&gt;
&lt;li data-end=&quot;2344&quot; data-start=&quot;2320&quot;&gt;plt.axes() &amp;rarr; Axes 생성&lt;/li&gt;
&lt;li data-end=&quot;2376&quot; data-start=&quot;2345&quot;&gt;ax.plot() &amp;rarr; Axes에 직접 그래프 그림&lt;/li&gt;
&lt;li data-end=&quot;2411&quot; data-start=&quot;2377&quot;&gt;ax.set_title() &amp;rarr; Axes 기반 제목 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2455&quot; data-start=&quot;2413&quot; data-ke-size=&quot;size16&quot;&gt;  실무에서는 &lt;b&gt;Axes 객체 기반 제어 방식이 더 많이 사용됩니다.&lt;/b&gt;&lt;/p&gt;
&lt;hr data-end=&quot;2460&quot; data-start=&quot;2457&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;2487&quot; data-start=&quot;2462&quot;&gt;4️⃣ 여러 개의 Subplots 생성하기&lt;/h1&gt;
&lt;h2 data-end=&quot;2513&quot; data-start=&quot;2489&quot; data-ke-size=&quot;size26&quot;&gt;✔ 1행 2열 구조 (Tuple 형태)&lt;/h2&gt;
&lt;pre id=&quot;code_1771131880703&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;x_value_01 = np.arange(1,10)
x_value_02 = np.arange(1,20)
y_value_01 = 2*x_value_01
y_value_02 = 2*x_value_02

fig, (ax_01, ax_02) = plt.subplots(nrows=1, ncols=2, figsize=(12,6))

ax_01.plot(x_value_01, y_value_01, color='red', marker='o', linestyle='dashed', linewidth=2,markersize=6,label='temp_01')
ax_02.bar(x_value_02,y_value_02, color='green',label='temp_02')

ax_01.set_xlabel('ax_01 * axis')
ax_02.set_xlabel('ax_02 * axis')

ax_01.legend()
ax_02.legend()

plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.52.55.png&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;417&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0xTPJ/dJMcadHGs5p/PmTStdHL3QehRfFqM2QIvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0xTPJ/dJMcadHGs5p/PmTStdHL3QehRfFqM2QIvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0xTPJ/dJMcadHGs5p/PmTStdHL3QehRfFqM2QIvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0xTPJ%2FdJMcadHGs5p%2FPmTStdHL3QehRfFqM2QIvk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;799&quot; height=&quot;417&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.52.55.png&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;417&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;3016&quot; data-start=&quot;3007&quot; data-ke-size=&quot;size23&quot;&gt;  설명&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3079&quot; data-start=&quot;3018&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3046&quot; data-start=&quot;3018&quot;&gt;nrows=1, ncols=2 &amp;rarr; 가로 2개&lt;/li&gt;
&lt;li data-end=&quot;3079&quot; data-start=&quot;3047&quot;&gt;axes는 (ax_01, ax_02) 튜플로 반환됨&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;3084&quot; data-start=&quot;3081&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;3100&quot; data-start=&quot;3086&quot; data-ke-size=&quot;size26&quot;&gt;✔ 1차원 배열 형태&lt;/h2&gt;
&lt;pre id=&quot;code_1771131923268&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import numpy as np

x_value_01 = np.arange(1,10)
x_value_02 = np.arange(1,20)
y_value_01 = 2 * x_value_01
y_value_02 = 2 * x_value_02

fig, ax = plt.subplots(nrows=1, ncols=2,figsize=(12,6))
ax[0].plot(x_value_01, y_value_01,color='red', marker='o', linestyle='dashed', linewidth=2, markersize=6, label='temp_01')
ax[1].bar(x_value_02, y_value_02, color='green', label='temp_02')

ax[0].set_xlabel('ax[0] * axis')
ax[1].set_xlabel('ax[1] * axis')

ax[0].legend()
ax[1].legend()

plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.53.08.png&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;423&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dQb7Mh/dJMb99SRdoC/0NreNW1SvxB9q6Q9NsBiiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dQb7Mh/dJMb99SRdoC/0NreNW1SvxB9q6Q9NsBiiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dQb7Mh/dJMb99SRdoC/0NreNW1SvxB9q6Q9NsBiiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdQb7Mh%2FdJMb99SRdoC%2F0NreNW1SvxB9q6Q9NsBiiK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;794&quot; height=&quot;423&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.53.08.png&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;423&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  nrows 또는 ncols 중 하나가 1일 경우 &amp;rarr; &lt;b&gt;1차원 배열 형태&lt;/b&gt;&lt;/p&gt;
&lt;hr data-end=&quot;3657&quot; data-start=&quot;3654&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;3681&quot; data-start=&quot;3659&quot; data-ke-size=&quot;size26&quot;&gt;✔ 2행 2열 구조 (2차원 배열)&lt;/h2&gt;
&lt;pre id=&quot;code_1771131961525&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import numpy as np

x_value_01 = np.arange(1, 10)
x_value_02 = np.arange(1, 20)
y_value_01 = 2 * x_value_01
y_value_02 = 2 * x_value_02

fig, ax = plt.subplots(nrows=2, ncols=2, figsize=(12, 6))

ax[0][0].plot(x_value_01, y_value_01, color='red', marker='o', linestyle='dashed', linewidth=2, markersize=6, label='temp_01')
ax[0][1].bar(x_value_02, y_value_02, color='green', label='temp_02')
ax[1][0].plot(x_value_01, y_value_01, color='green', marker='o', linestyle='dashed', linewidth=2, markersize=6, label='temp_03')
ax[1][1].bar(x_value_02, y_value_02, color='red', label='temp_04')

ax[0][0].set_xlabel('ax[0][0] x axis')
ax[0][1].set_xlabel('ax[0][1] x axis')
ax[1][0].set_xlabel('ax[1][0] x axis')
ax[1][1].set_xlabel('ax[1][1] x axis')

ax[0][0].legend()
ax[0][1].legend() 
ax[1][0].legend()
ax[1][1].legend() 

#plt.legend()
plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.54.36.png&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;425&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpRaX6/dJMcabpDFhY/i5b7fM5WySMS7acuFI5uYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpRaX6/dJMcabpDFhY/i5b7fM5WySMS7acuFI5uYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpRaX6/dJMcabpDFhY/i5b7fM5WySMS7acuFI5uYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpRaX6%2FdJMcabpDFhY%2Fi5b7fM5WySMS7acuFI5uYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;795&quot; height=&quot;425&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.54.36.png&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;425&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;4553&quot; data-start=&quot;4544&quot; data-ke-size=&quot;size23&quot;&gt;  핵심&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;4624&quot; data-start=&quot;4555&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4600&quot; data-start=&quot;4555&quot;&gt;nrows &amp;gt; 1 AND ncols &amp;gt; 1&lt;br /&gt;&amp;rarr; &lt;b&gt;2차원 배열 형태&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;4624&quot; data-start=&quot;4602&quot;&gt;접근 방식&lt;br /&gt;ax[행][열]&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;4629&quot; data-start=&quot;4626&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;4638&quot; data-start=&quot;4631&quot;&gt;  정리&lt;/h1&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1행 2열&lt;/td&gt;
&lt;td&gt;1차원 배열&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2행 2열&lt;/td&gt;
&lt;td&gt;2차원 배열&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1개&lt;/td&gt;
&lt;td&gt;단일 Axes 객체&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Matplotlib에서 중요한 것은 다음입니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;4877&quot; data-start=&quot;4779&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;4804&quot; data-start=&quot;4779&quot;&gt;하나의 Axes 안에 여러 Plot 가능&lt;/li&gt;
&lt;li data-end=&quot;4826&quot; data-start=&quot;4805&quot;&gt;서로 다른 그래프 유형 혼합 가능&lt;/li&gt;
&lt;li data-end=&quot;4847&quot; data-start=&quot;4827&quot;&gt;Axes 객체 기반 제어가 핵심&lt;/li&gt;
&lt;li data-end=&quot;4877&quot; data-start=&quot;4848&quot;&gt;Subplots 반환 구조를 정확히 이해해야 함&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-end=&quot;4889&quot; data-start=&quot;4879&quot; data-ke-size=&quot;size16&quot;&gt;실무에서는 대부분:&lt;/p&gt;
&lt;blockquote data-end=&quot;4940&quot; data-start=&quot;4891&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;4940&quot; data-start=&quot;4893&quot; data-ke-size=&quot;size16&quot;&gt;fig, ax = plt.subplots()&lt;br /&gt;&amp;rarr; ax 객체 직접 제어 방식&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-end=&quot;4950&quot; data-start=&quot;4942&quot; data-ke-size=&quot;size16&quot;&gt;을 사용합니다.&lt;/p&gt;</description>
      <category>Programming</category>
      <category>axes object</category>
      <category>matplotlib axes</category>
      <category>matplotlib multiple charts</category>
      <category>matplotlib multiple plot</category>
      <category>matplotlib subplot</category>
      <category>matplotlib 튜토리얼</category>
      <category>python visualization</category>
      <category>python 그래프그리기</category>
      <category>python 데이터시각화</category>
      <category>subplot 구조이해</category>
      <author>Lucas.Kim</author>
      <guid isPermaLink="true">https://fromeastlight.tistory.com/86</guid>
      <comments>https://fromeastlight.tistory.com/86#entry86comment</comments>
      <pubDate>Sun, 15 Feb 2026 14:06:41 +0900</pubDate>
    </item>
    <item>
      <title>Python Visualization Library 완전 정리 : Matplotlib</title>
      <link>https://fromeastlight.tistory.com/85</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;데이터 시각화.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dWutsP/dJMcachK8VY/JrKk8bYMGaDRP9PbHzOkzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dWutsP/dJMcachK8VY/JrKk8bYMGaDRP9PbHzOkzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dWutsP/dJMcachK8VY/JrKk8bYMGaDRP9PbHzOkzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdWutsP%2FdJMcachK8VY%2FJrKk8bYMGaDRP9PbHzOkzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1536&quot; height=&quot;1024&quot; data-filename=&quot;데이터 시각화.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;356&quot; data-start=&quot;248&quot; data-ke-size=&quot;size16&quot;&gt;데이터 분석에서 &lt;b&gt;시각화는 선택이 아니라 필수 과정&lt;/b&gt;입니다.&lt;br /&gt;특히 Python에서는 matplotlib, seaborn, pandas, plotly가 가장 많이 활용됩니다.&lt;/p&gt;
&lt;p data-end=&quot;375&quot; data-start=&quot;358&quot; data-ke-size=&quot;size16&quot;&gt;이 글에서는 다음을 정리합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;496&quot; data-start=&quot;377&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;402&quot; data-start=&quot;377&quot;&gt;통계적 시각화 vs 업무 분석 시각화 차이&lt;/li&gt;
&lt;li data-end=&quot;434&quot; data-start=&quot;403&quot;&gt;Matplotlib 구조 (Figure &amp;amp; Axes)&lt;/li&gt;
&lt;li data-end=&quot;452&quot; data-start=&quot;435&quot;&gt;pyplot 인터페이스 이해&lt;/li&gt;
&lt;li data-end=&quot;472&quot; data-start=&quot;453&quot;&gt;실전 코드 기반 기본 설정 방법&lt;/li&gt;
&lt;li data-end=&quot;496&quot; data-start=&quot;473&quot;&gt;축, 틱, 범례, 제한 범위 설정 방법&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;525&quot; data-start=&quot;498&quot; data-ke-size=&quot;size16&quot;&gt;기초이지만 반드시 정확히 이해해야 할 내용입니다.&lt;/p&gt;
&lt;hr data-end=&quot;530&quot; data-start=&quot;527&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;557&quot; data-start=&quot;532&quot;&gt;1.&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Python 주요 시각화 라이브러리&lt;/h1&gt;
&lt;h2 data-end=&quot;578&quot; data-start=&quot;559&quot; data-ke-size=&quot;size26&quot;&gt;✅ Python library&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;628&quot; data-start=&quot;580&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;594&quot; data-start=&quot;580&quot;&gt;matplotlib&lt;/li&gt;
&lt;li data-end=&quot;606&quot; data-start=&quot;595&quot;&gt;seaborn&lt;/li&gt;
&lt;li data-end=&quot;617&quot; data-start=&quot;607&quot;&gt;pandas&lt;/li&gt;
&lt;li data-end=&quot;628&quot; data-start=&quot;618&quot;&gt;plotly&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;633&quot; data-start=&quot;630&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;663&quot; data-start=&quot;635&quot; data-ke-size=&quot;size26&quot;&gt;  통계적인 시각화 (Statistical)&lt;/h2&gt;
&lt;blockquote data-end=&quot;712&quot; data-start=&quot;665&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;712&quot; data-start=&quot;667&quot; data-ke-size=&quot;size16&quot;&gt;히스토그램, 바차트, 분위, 상관히트맵, 산포도&lt;br /&gt;&amp;rarr; 주로 &lt;b&gt;Seaborn&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 data-end=&quot;728&quot; data-start=&quot;714&quot; data-ke-size=&quot;size23&quot;&gt;Seaborn 특징&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;894&quot; data-start=&quot;730&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;770&quot; data-start=&quot;730&quot;&gt;Matplotlib 보다 쉽고 이쁘게, pandas와 쉬운 연동&lt;/li&gt;
&lt;li data-end=&quot;798&quot; data-start=&quot;771&quot;&gt;Matplotlib 기반으로 쉽게 작성됨&lt;/li&gt;
&lt;li data-end=&quot;894&quot; data-start=&quot;799&quot;&gt;Default 설정만으로 Matplotlib보다 수려한 Visual 제공하며 Pandas 와 쉽게 연동&lt;br /&gt;그러나 Matplotlib을 어느정도 알고있어야함&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-end=&quot;899&quot; data-start=&quot;896&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;920&quot; data-start=&quot;901&quot; data-ke-size=&quot;size26&quot;&gt;  Matplotlib 특징&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;1084&quot; data-start=&quot;922&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;964&quot; data-start=&quot;922&quot;&gt;Python Visualization 가장 많이 사용되는 라이브러리&lt;/li&gt;
&lt;li data-end=&quot;992&quot; data-start=&quot;965&quot;&gt;3차원 이상의 입체시각화도 다양하게 지원&lt;/li&gt;
&lt;li data-end=&quot;1035&quot; data-start=&quot;993&quot;&gt;직관적이지 못한 API로 인해 개발에 익숙해지는 많은 시간이 소요됨&lt;/li&gt;
&lt;li data-end=&quot;1084&quot; data-start=&quot;1036&quot;&gt;Figure와 Axes 구조 이해가 시작 &amp;rarr; Label, Legend 등 세팅&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-end=&quot;1089&quot; data-start=&quot;1086&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1125&quot; data-start=&quot;1091&quot; data-ke-size=&quot;size26&quot;&gt;  업무분석 시각화 (Business Analysis)&lt;/h2&gt;
&lt;blockquote data-end=&quot;1182&quot; data-start=&quot;1127&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;1182&quot; data-start=&quot;1129&quot; data-ke-size=&quot;size16&quot;&gt;바차트, 라인플롯, 파이차트, 영역 차트, 산포도, 방사형 차트&lt;br /&gt;&amp;rarr; 주로 &lt;b&gt;Plotly&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-end=&quot;1219&quot; data-start=&quot;1184&quot; data-ke-size=&quot;size16&quot;&gt;Plotly는 인터랙티브 대시보드 및 BI 시각화에 적합합니다.&lt;/p&gt;
&lt;hr data-end=&quot;1224&quot; data-start=&quot;1221&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;1256&quot; data-start=&quot;1226&quot;&gt;2.&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Matplotlib.pyplot 모듈의 이해&lt;/h1&gt;
&lt;pre id=&quot;code_1771130144484&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;imort matplotlib.pyplot as plt


plt.plot([1.2.3],[4,5,6])
plt.title('Hello plot')
plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.28.14.png&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWfYSo/dJMcaaxtQdG/qDncV0ewHZqOOTTGiawYS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWfYSo/dJMcaaxtQdG/qDncV0ewHZqOOTTGiawYS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWfYSo/dJMcaaxtQdG/qDncV0ewHZqOOTTGiawYS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWfYSo%2FdJMcaaxtQdG%2FqDncV0ewHZqOOTTGiawYS1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;535&quot; height=&quot;420&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.28.14.png&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;1379&quot; data-start=&quot;1367&quot; data-ke-size=&quot;size23&quot;&gt;  코드 설명&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1522&quot; data-start=&quot;1381&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1428&quot; data-start=&quot;1381&quot;&gt;matplotlib.pyplot은 Matlab 스타일 인터페이스를 제공합니다.&lt;/li&gt;
&lt;li data-end=&quot;1458&quot; data-start=&quot;1429&quot;&gt;plt.plot()은 선 그래프를 생성합니다.&lt;/li&gt;
&lt;li data-end=&quot;1490&quot; data-start=&quot;1459&quot;&gt;plt.title()은 그래프 제목을 설정합니다.&lt;/li&gt;
&lt;li data-end=&quot;1522&quot; data-start=&quot;1491&quot;&gt;plt.show()는 그래프를 화면에 출력합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-end=&quot;1609&quot; data-start=&quot;1524&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;1609&quot; data-start=&quot;1526&quot; data-ke-size=&quot;size16&quot;&gt;pyplot 은 Matlab 스타일의 interface를 가지며&lt;br /&gt;MatLab 사용자들이 보다 쉽게 Python에 적용할수있도록 설계되었습니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-end=&quot;1614&quot; data-start=&quot;1611&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;1653&quot; data-start=&quot;1616&quot;&gt;3.&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Pyplot의 두가지 구성요소 : Figure, Axes&lt;/h1&gt;
&lt;h2 data-end=&quot;1666&quot; data-start=&quot;1655&quot; data-ke-size=&quot;size26&quot;&gt;✅ Figure&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1712&quot; data-start=&quot;1668&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1690&quot; data-start=&quot;1668&quot;&gt;그림을 그리기 위한 Canvas 역할&lt;/li&gt;
&lt;li data-end=&quot;1699&quot; data-start=&quot;1691&quot;&gt;전체 그림판&lt;/li&gt;
&lt;li data-end=&quot;1712&quot; data-start=&quot;1700&quot;&gt;크기, 배경색 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;1723&quot; data-start=&quot;1714&quot; data-ke-size=&quot;size26&quot;&gt;✅ Axes&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1777&quot; data-start=&quot;1725&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1742&quot; data-start=&quot;1725&quot;&gt;실제 데이터가 그려지는 영역&lt;/li&gt;
&lt;li data-end=&quot;1777&quot; data-start=&quot;1743&quot;&gt;X축, Y축, Title, Legend 등을 설정하는 객체&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;1788&quot; data-start=&quot;1779&quot; data-ke-size=&quot;size23&quot;&gt;관계 구조&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1817&quot; data-start=&quot;1790&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1804&quot; data-start=&quot;1790&quot;&gt;Figure는 액자&lt;/li&gt;
&lt;li data-end=&quot;1817&quot; data-start=&quot;1805&quot;&gt;Axes는 그림&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1868&quot; data-start=&quot;1819&quot; data-ke-size=&quot;size16&quot;&gt;Axes(Line2D, Text, XAxis, YAxis) &amp;rarr; Figure에 포함됩니다.&lt;/p&gt;
&lt;hr data-end=&quot;1873&quot; data-start=&quot;1870&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;1902&quot; data-start=&quot;1875&quot;&gt;4.&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;여러개의 plot을 가지는 Figure&lt;/h1&gt;
&lt;pre id=&quot;code_1771130266988&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;fig, (ax1, ax2)= plt.subplots(1,2,figsize=(10,6))&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.29.16.png&quot; data-origin-width=&quot;790&quot; data-origin-height=&quot;482&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cYLluB/dJMcaaYwQ7z/sc0EyVB5tNfuc6rX3e2osk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cYLluB/dJMcaaYwQ7z/sc0EyVB5tNfuc6rX3e2osk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cYLluB/dJMcaaYwQ7z/sc0EyVB5tNfuc6rX3e2osk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcYLluB%2FdJMcaaYwQ7z%2Fsc0EyVB5tNfuc6rX3e2osk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;790&quot; height=&quot;482&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.29.16.png&quot; data-origin-width=&quot;790&quot; data-origin-height=&quot;482&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;1978&quot; data-start=&quot;1969&quot; data-ke-size=&quot;size23&quot;&gt;  설명&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2076&quot; data-start=&quot;1980&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2024&quot; data-start=&quot;1980&quot;&gt;plt.subplots()는 Figure와 Axes를 동시에 생성합니다.&lt;/li&gt;
&lt;li data-end=&quot;2044&quot; data-start=&quot;2025&quot;&gt;(1,2)는 1행 2열 구조&lt;/li&gt;
&lt;li data-end=&quot;2076&quot; data-start=&quot;2045&quot;&gt;figsize=(10,6)은 전체 그림 크기 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;2081&quot; data-start=&quot;2078&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;2102&quot; data-start=&quot;2083&quot;&gt;5.&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;기본 2D Plot 예제&lt;/h1&gt;
&lt;pre id=&quot;code_1771130299775&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import matplotlib.pyplot as plt
%matplotlib inline

plt.plot([1,2,3],
         [2,4,6])

plt.title('Hello Plot')

plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.28.14.png&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHZhAN/dJMcah4qY67/67e8h3bsgO8X1m0VTKMr81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHZhAN/dJMcah4qY67/67e8h3bsgO8X1m0VTKMr81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHZhAN/dJMcah4qY67/67e8h3bsgO8X1m0VTKMr81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHZhAN%2FdJMcah4qY67%2F67e8h3bsgO8X1m0VTKMr81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;535&quot; height=&quot;420&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.28.14.png&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;2253&quot; data-start=&quot;2244&quot; data-ke-size=&quot;size23&quot;&gt;  설명&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2304&quot; data-start=&quot;2255&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2273&quot; data-start=&quot;2255&quot;&gt;[1,2,3] &amp;rarr; X축 값&lt;/li&gt;
&lt;li data-end=&quot;2292&quot; data-start=&quot;2274&quot;&gt;[2,4,6] &amp;rarr; Y축 값&lt;/li&gt;
&lt;li data-end=&quot;2304&quot; data-start=&quot;2293&quot;&gt;직선 그래프 출력&lt;hr data-end=&quot;2309&quot; data-start=&quot;2306&quot; data-ke-style=&quot;style1&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 style=&quot;color: #000000; text-align: start;&quot; data-start=&quot;3556&quot; data-end=&quot;3568&quot;&gt;6.&lt;span&gt; Figure 크기 설정&lt;/span&gt;&lt;/h1&gt;
&lt;pre id=&quot;code_1771130402259&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plt.figure(
    figsize=(10,4) # 액자 가로 10, 세로 4 설정
)

plt.plot([1,2,3],
         [2,4,6])

plt.title('Hello Plot')

plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.28.24.png&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;349&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOnu5W/dJMb996o9ny/j9lyGTv3qTk7pIqefOyYA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOnu5W/dJMb996o9ny/j9lyGTv3qTk7pIqefOyYA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOnu5W/dJMb996o9ny/j9lyGTv3qTk7pIqefOyYA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOnu5W%2FdJMb996o9ny%2Fj9lyGTv3qTk7pIqefOyYA0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;793&quot; height=&quot;349&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.28.24.png&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;349&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;2482&quot; data-start=&quot;2473&quot; data-ke-size=&quot;size23&quot;&gt;  설명&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2540&quot; data-start=&quot;2484&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2514&quot; data-start=&quot;2484&quot;&gt;plt.figure()는 Figure 객체 생성&lt;/li&gt;
&lt;li data-end=&quot;2540&quot; data-start=&quot;2515&quot;&gt;figsize는 가로, 세로 크기 지정&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1771130433667&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plt.figure(
    figsize=(8,6), # Figure 객체 크기
    facecolor='yellow' # 배경 색상 설정
)
plt.plot([1,2,3],
         [2,4,6])
plt.title('Hello Plot')

plt.show()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.28.50.png&quot; data-origin-width=&quot;662&quot; data-origin-height=&quot;513&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7S6qI/dJMcacovNQc/FAIo3mlR3JtNB7p1FbY5L1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7S6qI/dJMcacovNQc/FAIo3mlR3JtNB7p1FbY5L1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7S6qI/dJMcacovNQc/FAIo3mlR3JtNB7p1FbY5L1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7S6qI%2FdJMcacovNQc%2FFAIo3mlR3JtNB7p1FbY5L1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;662&quot; height=&quot;513&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.28.50.png&quot; data-origin-width=&quot;662&quot; data-origin-height=&quot;513&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h1 data-end=&quot;2853&quot; data-start=&quot;2837&quot;&gt;7.&lt;span&gt;&amp;nbsp;&lt;/span&gt;Axes 객체 확인&lt;/h1&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1771130480015&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ax = plt.axes()
print(type(ax))&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2927&quot; data-start=&quot;2902&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2927&quot; data-start=&quot;2902&quot;&gt;현재 axes 객체를 생성 및 확인합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;2932&quot; data-start=&quot;2929&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;2955&quot; data-start=&quot;2934&quot;&gt;8.&lt;span&gt;&amp;nbsp;&lt;/span&gt;DataFrame 활용 예제&lt;/h1&gt;
&lt;pre id=&quot;code_1771130532235&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pandas as pd

df = pd.DataFrame({
    'x_value': [1,2,3,4,5,6],
    'y_value':[2,4,6,8,10,12]
})

plt.plot(df['x_value'],
         df['y_value'])&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-end=&quot;3145&quot; data-start=&quot;3139&quot; data-ke-size=&quot;size23&quot;&gt;목적&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3174&quot; data-start=&quot;3146&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3174&quot; data-start=&quot;3146&quot;&gt;pandas DataFrame과 연동하여 시각화&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;3179&quot; data-start=&quot;3176&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;3193&quot; data-start=&quot;3181&quot;&gt;9.&lt;span&gt;&amp;nbsp;&lt;/span&gt;스타일 설정&lt;/h1&gt;
&lt;pre id=&quot;code_1771130639679&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plt.plot(x_value,
         y_value,
         color='green') # 라인 색상 설정&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.29.59.png&quot; data-origin-width=&quot;524&quot; data-origin-height=&quot;405&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WLmdG/dJMcagEtyVG/m5LnKqZGNTEvVkaf4TADs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WLmdG/dJMcagEtyVG/m5LnKqZGNTEvVkaf4TADs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WLmdG/dJMcagEtyVG/m5LnKqZGNTEvVkaf4TADs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWLmdG%2FdJMcagEtyVG%2Fm5LnKqZGNTEvVkaf4TADs1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;524&quot; height=&quot;405&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.29.59.png&quot; data-origin-width=&quot;524&quot; data-origin-height=&quot;405&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1771130653296&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plt.plot(x_value,
         y_value,
         color='red',
         marker='o',
         linestyle='dashed',
         linewidth=2,
         markersize=6)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.30.12.png&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;402&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xDBz3/dJMcajnAFWe/FLhVKK8Er66a6xfKDO8Xc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xDBz3/dJMcajnAFWe/FLhVKK8Er66a6xfKDO8Xc0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xDBz3/dJMcajnAFWe/FLhVKK8Er66a6xfKDO8Xc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxDBz3%2FdJMcajnAFWe%2FFLhVKK8Er66a6xfKDO8Xc0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;528&quot; height=&quot;402&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.30.12.png&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;402&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;3458&quot; data-start=&quot;3449&quot; data-ke-size=&quot;size23&quot;&gt;설정 항목&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3549&quot; data-start=&quot;3460&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3474&quot; data-start=&quot;3460&quot;&gt;color &amp;rarr; 선 색상&lt;/li&gt;
&lt;li data-end=&quot;3490&quot; data-start=&quot;3475&quot;&gt;marker &amp;rarr; 점 모양&lt;/li&gt;
&lt;li data-end=&quot;3510&quot; data-start=&quot;3491&quot;&gt;linestyle &amp;rarr; 선 스타일&lt;/li&gt;
&lt;li data-end=&quot;3529&quot; data-start=&quot;3511&quot;&gt;linewidth &amp;rarr; 선 두께&lt;/li&gt;
&lt;li data-end=&quot;3549&quot; data-start=&quot;3530&quot;&gt;markersize &amp;rarr; 점 크기&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;3554&quot; data-start=&quot;3551&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;3568&quot; data-start=&quot;3556&quot;&gt;10. 축 이름 설정&lt;/h1&gt;
&lt;pre id=&quot;code_1771130711290&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plt.xlabel('X axis')
plt.ylabel('Y axis')&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.30.36.png&quot; data-origin-width=&quot;543&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEfQYy/dJMcafMkWr8/IUnO59NqhP5sZ0zPCqftI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEfQYy/dJMcafMkWr8/IUnO59NqhP5sZ0zPCqftI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEfQYy/dJMcafMkWr8/IUnO59NqhP5sZ0zPCqftI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEfQYy%2FdJMcafMkWr8%2FIUnO59NqhP5sZ0zPCqftI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;543&quot; height=&quot;420&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.30.36.png&quot; data-origin-width=&quot;543&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h1 style=&quot;color: #000000; text-align: start;&quot; data-start=&quot;3556&quot; data-end=&quot;3568&quot;&gt;11. 틱(Tick) 조정&lt;/h1&gt;
&lt;pre id=&quot;code_1771130872617&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plt.xticks(ticks=np.arange(0,100,5),
           rotation=45)
plt.yticks(rotation=45)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.31.26.png&quot; data-origin-width=&quot;565&quot; data-origin-height=&quot;452&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/V4t2n/dJMcagEtyXX/CTaK1CczWzwsKDBO6jp2A0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/V4t2n/dJMcagEtyXX/CTaK1CczWzwsKDBO6jp2A0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/V4t2n/dJMcagEtyXX/CTaK1CczWzwsKDBO6jp2A0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FV4t2n%2FdJMcagEtyXX%2FCTaK1CczWzwsKDBO6jp2A0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;565&quot; height=&quot;452&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.31.26.png&quot; data-origin-width=&quot;565&quot; data-origin-height=&quot;452&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;3759&quot; data-start=&quot;3753&quot; data-ke-size=&quot;size23&quot;&gt;목적&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3787&quot; data-start=&quot;3760&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3770&quot; data-start=&quot;3760&quot;&gt;X축 간격 조정&lt;/li&gt;
&lt;li data-end=&quot;3787&quot; data-start=&quot;3771&quot;&gt;라벨 회전 (가독성 개선)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;3792&quot; data-start=&quot;3789&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;3810&quot; data-start=&quot;3794&quot;&gt;12. 축 범위 제한&lt;/h1&gt;
&lt;pre id=&quot;code_1771130918616&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plt.xlim(0,50)
plt.ylim(0,100)&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3875&quot; data-start=&quot;3858&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3875&quot; data-start=&quot;3858&quot;&gt;X축, Y축 표시 범위 제한&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;3880&quot; data-start=&quot;3877&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;3896&quot; data-start=&quot;3882&quot;&gt;13. 범례 설정&lt;/h1&gt;
&lt;pre id=&quot;code_1771130934381&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plt.plot(x_value,
         y_value,
         color='green',
         label='temp')

plt.legend()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.31.55.png&quot; data-origin-width=&quot;572&quot; data-origin-height=&quot;443&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Tuhp9/dJMcahpPGzT/NS5acigBaee3SmIs4cFg21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Tuhp9/dJMcahpPGzT/NS5acigBaee3SmIs4cFg21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Tuhp9/dJMcahpPGzT/NS5acigBaee3SmIs4cFg21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTuhp9%2FdJMcahpPGzT%2FNS5acigBaee3SmIs4cFg21%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;572&quot; height=&quot;443&quot; data-filename=&quot;스크린샷 2026-02-14 오후 8.31.55.png&quot; data-origin-width=&quot;572&quot; data-origin-height=&quot;443&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;label 설정 후 plt.legend() 호출&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Matplotlib을 이해하는 핵심은 단 하나입니다.&lt;/p&gt;
&lt;blockquote data-end=&quot;4122&quot; data-start=&quot;4089&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;4122&quot; data-start=&quot;4091&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Figure와 Axes 구조를 정확히 이해하는 것&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;4191&quot; data-start=&quot;4124&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4137&quot; data-start=&quot;4124&quot;&gt;Figure = 액자&lt;/li&gt;
&lt;li data-end=&quot;4155&quot; data-start=&quot;4138&quot;&gt;Axes = 실제 그림 영역&lt;/li&gt;
&lt;li data-end=&quot;4191&quot; data-start=&quot;4156&quot;&gt;pyplot = 빠르게 그리는 Matlab 스타일 인터페이스&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;4259&quot; data-start=&quot;4193&quot; data-ke-size=&quot;size16&quot;&gt;Seaborn은 Matplotlib 기반이므로&lt;br /&gt;Matplotlib 구조를 이해하면 Seaborn도 훨씬 쉬워집니다.&lt;/p&gt;</description>
      <category>Programming</category>
      <category>DataVisualization</category>
      <category>matplotlib</category>
      <category>MatplotlibTutorial</category>
      <category>PlotlyBasics</category>
      <category>pyplot사용법</category>
      <category>PythonVisualization</category>
      <category>Python시각화</category>
      <category>Seaborn</category>
      <category>SeabornGuide</category>
      <category>데이터시각화기초</category>
      <author>Lucas.Kim</author>
      <guid isPermaLink="true">https://fromeastlight.tistory.com/85</guid>
      <comments>https://fromeastlight.tistory.com/85#entry85comment</comments>
      <pubDate>Sun, 15 Feb 2026 13:49:52 +0900</pubDate>
    </item>
    <item>
      <title>데이터 시각화 핵심 개념 한 번에 정리</title>
      <link>https://fromeastlight.tistory.com/84</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;데이터 시각화.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tmsPY/dJMcaioKAzH/AvmxvnsgTCsfHVqkSVqBqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tmsPY/dJMcaioKAzH/AvmxvnsgTCsfHVqkSVqBqK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tmsPY/dJMcaioKAzH/AvmxvnsgTCsfHVqkSVqBqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtmsPY%2FdJMcaioKAzH%2FAvmxvnsgTCsfHVqkSVqBqK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1536&quot; height=&quot;1024&quot; data-filename=&quot;데이터 시각화.png&quot; data-origin-width=&quot;1536&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;180&quot; data-start=&quot;139&quot; data-ke-size=&quot;size23&quot;&gt;Matplotlib &amp;middot; Seaborn &amp;middot; 기본 차트 유형 완전 요약&lt;/h3&gt;
&lt;p data-end=&quot;266&quot; data-start=&quot;182&quot; data-ke-size=&quot;size16&quot;&gt;데이터 분석에서 &lt;b&gt;시각화는 선택이 아니라 필수&lt;/b&gt;입니다.&lt;br /&gt;모델링 이전에 데이터의 구조, 분포, 관계를 이해하는 과정이 반드시 필요하기 때문입니다.&lt;/p&gt;
&lt;p data-end=&quot;372&quot; data-start=&quot;268&quot; data-ke-size=&quot;size16&quot;&gt;이번 글에서는 Python 데이터 시각화의 핵심 라이브러리인 &lt;b&gt;Matplotlib과 Seaborn의 차이&lt;/b&gt;,&lt;br /&gt;그리고 &lt;b&gt;상황별로 어떤 차트를 써야 하는지&lt;/b&gt;를 한 번에 정리합니다.&lt;/p&gt;
&lt;h2 data-end=&quot;410&quot; data-start=&quot;379&quot; data-ke-size=&quot;size26&quot;&gt;1️⃣ Matplotlib vs Seaborn 차이&lt;/h2&gt;
&lt;h3 data-end=&quot;428&quot; data-start=&quot;412&quot; data-ke-size=&quot;size23&quot;&gt;✔ Matplotlib&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;506&quot; data-start=&quot;429&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;455&quot; data-start=&quot;429&quot;&gt;Python의 &lt;b&gt;기본 시각화 라이브러리&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;479&quot; data-start=&quot;456&quot;&gt;저수준(low-level) API 제공&lt;/li&gt;
&lt;li data-end=&quot;491&quot; data-start=&quot;480&quot;&gt;세밀한 제어 가능&lt;/li&gt;
&lt;li data-end=&quot;506&quot; data-start=&quot;492&quot;&gt;다만 코드가 다소 복잡&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;521&quot; data-start=&quot;508&quot; data-ke-size=&quot;size23&quot;&gt;✔ Seaborn&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;610&quot; data-start=&quot;522&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;558&quot; data-start=&quot;522&quot;&gt;Matplotlib 기반의 &lt;b&gt;통계 시각화 특화 라이브러리&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;576&quot; data-start=&quot;559&quot;&gt;데이터프레임 기반 자동 처리&lt;/li&gt;
&lt;li data-end=&quot;590&quot; data-start=&quot;577&quot;&gt;기본 스타일이 세련됨&lt;/li&gt;
&lt;li data-end=&quot;610&quot; data-start=&quot;591&quot;&gt;범주형&amp;middot;통계 요약 시각화에 강점&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;621&quot; data-start=&quot;612&quot; data-ke-size=&quot;size16&quot;&gt;  정리하면&lt;/p&gt;
&lt;blockquote data-end=&quot;677&quot; data-start=&quot;622&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;677&quot; data-start=&quot;624&quot; data-ke-size=&quot;size16&quot;&gt;Matplotlib은 &quot;직접 설계&quot;, Seaborn은 &quot;빠르고 통계 친화적 시각화&quot;에 강합니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-end=&quot;682&quot; data-start=&quot;679&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;727&quot; data-start=&quot;684&quot; data-ke-size=&quot;size26&quot;&gt;2️⃣ Matplotlib 객체 구조 이해 (Figure vs Axes)&lt;/h2&gt;
&lt;p data-end=&quot;762&quot; data-start=&quot;729&quot; data-ke-size=&quot;size16&quot;&gt;Matplotlib은 객체 구조를 이해하면 훨씬 쉬워집니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Figure&lt;/td&gt;
&lt;td&gt;전체 캔버스&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Axes&lt;/td&gt;
&lt;td&gt;실제 그래프가 그려지는 좌표 영역&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre id=&quot;code_1771129525291&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;fig, ax = plt.subplots()
ax.set_xlabel(&quot;X label&quot;)
ax.set_ylabel(&quot;Y label&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;✔ Axes 객체를 직접 다룰 때는 set_ 접두어를 사용합니다.&lt;br /&gt;(예: ax.set_xlabel(), ax.set_title())&lt;/p&gt;
&lt;hr data-end=&quot;1019&quot; data-start=&quot;1016&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1044&quot; data-start=&quot;1021&quot; data-ke-size=&quot;size26&quot;&gt;3️⃣ Seaborn의 핵심 파라미터&lt;/h2&gt;
&lt;h3 data-end=&quot;1063&quot; data-start=&quot;1046&quot; data-ke-size=&quot;size23&quot;&gt;  hue 파라미터&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1120&quot; data-start=&quot;1064&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1081&quot; data-start=&quot;1064&quot;&gt;범주형 변수를 색상으로 구분&lt;/li&gt;
&lt;li data-end=&quot;1097&quot; data-start=&quot;1082&quot;&gt;데이터의 추가 정보 표현&lt;/li&gt;
&lt;li data-end=&quot;1120&quot; data-start=&quot;1098&quot;&gt;그룹 간 분포 차이 파악에 매우 유용&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1124&quot; data-start=&quot;1122&quot; data-ke-size=&quot;size16&quot;&gt;예:&lt;/p&gt;
&lt;pre id=&quot;code_1771129544292&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sns.scatterplot(data=df, x=&quot;age&quot;, y=&quot;fare&quot;, hue=&quot;sex&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-end=&quot;1222&quot; data-start=&quot;1200&quot; data-ke-size=&quot;size26&quot;&gt;4️⃣ 상황별 추천 차트 유형 정리&lt;/h2&gt;
&lt;h3 data-end=&quot;1242&quot; data-start=&quot;1224&quot; data-ke-size=&quot;size23&quot;&gt;  상관관계 한눈에 보기&lt;/h3&gt;
&lt;p data-end=&quot;1268&quot; data-start=&quot;1243&quot; data-ke-size=&quot;size16&quot;&gt;✔ &lt;b&gt;Correlation Heatmap&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1312&quot; data-start=&quot;1270&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1293&quot; data-start=&quot;1270&quot;&gt;여러 변수 간 상관계수를 색상으로 표현&lt;/li&gt;
&lt;li data-end=&quot;1312&quot; data-start=&quot;1294&quot;&gt;관계 강도와 방향 파악에 최적&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1317&quot; data-start=&quot;1314&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1337&quot; data-start=&quot;1319&quot; data-ke-size=&quot;size23&quot;&gt;  두 연속형 변수 관계&lt;/h3&gt;
&lt;p data-end=&quot;1356&quot; data-start=&quot;1338&quot; data-ke-size=&quot;size16&quot;&gt;✔ &lt;b&gt;Scatter Plot&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1398&quot; data-start=&quot;1358&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1379&quot; data-start=&quot;1358&quot;&gt;변수 간 패턴, 군집, 이상치 확인&lt;/li&gt;
&lt;li data-end=&quot;1398&quot; data-start=&quot;1380&quot;&gt;가장 기본적인 관계 분석 도구&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1403&quot; data-start=&quot;1400&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1425&quot; data-start=&quot;1405&quot; data-ke-size=&quot;size23&quot;&gt;  연속형 데이터 분포 확인&lt;/h3&gt;
&lt;p data-end=&quot;1441&quot; data-start=&quot;1426&quot; data-ke-size=&quot;size16&quot;&gt;✔ &lt;b&gt;Histogram&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1472&quot; data-start=&quot;1443&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1456&quot; data-start=&quot;1443&quot;&gt;값의 빈도 분포 확인&lt;/li&gt;
&lt;li data-end=&quot;1472&quot; data-start=&quot;1457&quot;&gt;데이터 왜도&amp;middot;치우침 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1477&quot; data-start=&quot;1474&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1502&quot; data-start=&quot;1479&quot; data-ke-size=&quot;size23&quot;&gt;  분포 + 통계 요약 함께 보기&lt;/h3&gt;
&lt;p data-end=&quot;1531&quot; data-start=&quot;1503&quot; data-ke-size=&quot;size16&quot;&gt;✔ &lt;b&gt;Box Plot / Violin Plot&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Box plot&lt;/td&gt;
&lt;td&gt;중앙값, 사분위수, 이상치&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Violin plot&lt;/td&gt;
&lt;td&gt;분포 밀도까지 시각화&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-end=&quot;1625&quot; data-start=&quot;1622&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1647&quot; data-start=&quot;1627&quot; data-ke-size=&quot;size23&quot;&gt;  범주형 X + 연속형 Y&lt;/h3&gt;
&lt;p data-end=&quot;1669&quot; data-start=&quot;1648&quot; data-ke-size=&quot;size16&quot;&gt;✔ &lt;b&gt;Seaborn Barplot&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1714&quot; data-start=&quot;1671&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1690&quot; data-start=&quot;1671&quot;&gt;기본적으로 &lt;b&gt;평균값&lt;/b&gt;을 표시&lt;/li&gt;
&lt;li data-end=&quot;1714&quot; data-start=&quot;1691&quot;&gt;신뢰구간(error bar) 포함 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1719&quot; data-start=&quot;1716&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1750&quot; data-start=&quot;1721&quot; data-ke-size=&quot;size26&quot;&gt;5️⃣ 서브플롯에서 Seaborn 사용하는 방법&lt;/h2&gt;
&lt;pre id=&quot;code_1771129598620&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;fig, axes = plt.subplots(2,2)

sns.scatterplot(..., ax=axes[0,0])&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;✔ ax 인자로 특정 Axes 객체 전달&lt;br /&gt;&amp;rarr; 원하는 위치에 그래프 배치 가능&lt;/p&gt;
&lt;hr data-end=&quot;1884&quot; data-start=&quot;1881&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;1899&quot; data-start=&quot;1886&quot;&gt;  전체 핵심 요약&lt;/h1&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2083&quot; data-start=&quot;1901&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1941&quot; data-start=&quot;1901&quot;&gt;Matplotlib은 저수준 제어, Seaborn은 통계 시각화 특화&lt;/li&gt;
&lt;li data-end=&quot;1962&quot; data-start=&quot;1942&quot;&gt;Axes 객체는 실제 그래프 영역&lt;/li&gt;
&lt;li data-end=&quot;1981&quot; data-start=&quot;1963&quot;&gt;hue는 색상 기반 범주 구분&lt;/li&gt;
&lt;li data-end=&quot;1999&quot; data-start=&quot;1982&quot;&gt;Scatter &amp;rarr; 관계 분석&lt;/li&gt;
&lt;li data-end=&quot;2019&quot; data-start=&quot;2000&quot;&gt;Heatmap &amp;rarr; 상관계수 분석&lt;/li&gt;
&lt;li data-end=&quot;2039&quot; data-start=&quot;2020&quot;&gt;Histogram &amp;rarr; 분포 확인&lt;/li&gt;
&lt;li data-end=&quot;2065&quot; data-start=&quot;2040&quot;&gt;Box/Violin &amp;rarr; 분포 + 요약 통계&lt;/li&gt;
&lt;li data-end=&quot;2083&quot; data-start=&quot;2066&quot;&gt;Barplot &amp;rarr; 평균 비교&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;2088&quot; data-start=&quot;2085&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;2175&quot; data-start=&quot;2090&quot; data-ke-size=&quot;size16&quot;&gt;이 글은 앞으로 이어질 &lt;b&gt;실전 데이터 시각화 시리즈의 기초 정리편&lt;/b&gt;입니다.&lt;br /&gt;다음 글에서는 실제 예제 데이터로 차트별 활용 전략을 정리해보겠습니다.&lt;/p&gt;</description>
      <category>Programming</category>
      <category>CorrelationHeatmap</category>
      <category>DataVisualization</category>
      <category>matplotlib</category>
      <category>MatplotlibTutorial</category>
      <category>PythonDataAnalysis</category>
      <category>Seaborn</category>
      <category>SeabornPlot</category>
      <category>데이터시각화</category>
      <category>상관관계히트맵</category>
      <category>파이썬데이터분석</category>
      <author>Lucas.Kim</author>
      <guid isPermaLink="true">https://fromeastlight.tistory.com/84</guid>
      <comments>https://fromeastlight.tistory.com/84#entry84comment</comments>
      <pubDate>Sun, 15 Feb 2026 13:27:43 +0900</pubDate>
    </item>
    <item>
      <title>Mercari Price Suggestion&amp;mdash; 대규모 텍스트 + 카테고리 데이터를 활용한 가격 예측 실전 프로젝트</title>
      <link>https://fromeastlight.tistory.com/83</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;사이드 프로젝트.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cexajY/dJMcac9PBbR/G6NiLkTPKkUt3R4YiORmuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cexajY/dJMcac9PBbR/G6NiLkTPKkUt3R4YiORmuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cexajY/dJMcac9PBbR/G6NiLkTPKkUt3R4YiORmuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcexajY%2FdJMcac9PBbR%2FG6NiLkTPKkUt3R4YiORmuK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;430&quot; height=&quot;645&quot; data-filename=&quot;사이드 프로젝트.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-end=&quot;258&quot; data-start=&quot;250&quot; data-ke-size=&quot;size26&quot;&gt;1. 개요&lt;/h2&gt;
&lt;p data-end=&quot;357&quot; data-start=&quot;260&quot; data-ke-size=&quot;size16&quot;&gt;Mercari Price Suggestion 문제는 &lt;b&gt;상품의 텍스트 정보와 메타 데이터&lt;/b&gt;를 활용하여&lt;br /&gt;상품 가격을 예측하는 &lt;b&gt;회귀(Regression) 문제&lt;/b&gt;입니다.&lt;/p&gt;
&lt;p data-end=&quot;382&quot; data-start=&quot;359&quot; data-ke-size=&quot;size16&quot;&gt;이 문제의 핵심 난이도는 다음과 같습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;491&quot; data-start=&quot;384&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;409&quot; data-start=&quot;384&quot;&gt;데이터 규모가 매우 큼 (약 148만 건)&lt;/li&gt;
&lt;li data-end=&quot;443&quot; data-start=&quot;410&quot;&gt;텍스트 피처(name, description) 비중이 큼&lt;/li&gt;
&lt;li data-end=&quot;460&quot; data-start=&quot;444&quot;&gt;범주형 피처가 매우 고차원&lt;/li&gt;
&lt;li data-end=&quot;491&quot; data-start=&quot;461&quot;&gt;평가 지표가 &lt;b&gt;RMSLE&lt;/b&gt;로, 로그 변환이 필수&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;577&quot; data-start=&quot;493&quot; data-ke-size=&quot;size16&quot;&gt;본 글에서는&lt;br /&gt;&lt;b&gt;전처리 &amp;rarr; 희소 행렬 기반 피처 엔지니어링 &amp;rarr; Ridge / LightGBM &amp;rarr; 앙상블&lt;/b&gt;&lt;br /&gt;까지의 전체 파이프라인을 정리합니다.&lt;/p&gt;
&lt;h2 data-end=&quot;607&quot; data-start=&quot;584&quot; data-ke-size=&quot;size26&quot;&gt;2. 데이터 로딩 및 타깃 분포 확인&lt;/h2&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1771045662909&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mercari_df = pd.read_csv('./mercari/train.tsv', sep='\t')
print(mercari_df.shape)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;747&quot; data-start=&quot;706&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;730&quot; data-start=&quot;706&quot;&gt;총 데이터 수: &lt;b&gt;1,482,535&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;747&quot; data-start=&quot;731&quot;&gt;타깃 변수: price&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;767&quot; data-start=&quot;749&quot; data-ke-size=&quot;size23&quot;&gt;2.1 가격 분포의 문제점&lt;/h3&gt;
&lt;p data-end=&quot;830&quot; data-start=&quot;769&quot; data-ke-size=&quot;size16&quot;&gt;원본 가격 분포는 &lt;b&gt;오른쪽으로 긴 꼬리(long tail)&lt;/b&gt; 를 가지며,&lt;br /&gt;고가 상품이 소수 존재합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771045674684&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sns.histplot(mercari_df['price'], bins=100)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-13 오후 9.07.01.png&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;364&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A9wJ6/dJMcaf6BCj2/PAae7iEKovD4MAjChBq22k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A9wJ6/dJMcaf6BCj2/PAae7iEKovD4MAjChBq22k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A9wJ6/dJMcaf6BCj2/PAae7iEKovD4MAjChBq22k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA9wJ6%2FdJMcaf6BCj2%2FPAae7iEKovD4MAjChBq22k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;556&quot; height=&quot;364&quot; data-filename=&quot;스크린샷 2026-02-13 오후 9.07.01.png&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;364&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;924&quot; data-start=&quot;891&quot; data-ke-size=&quot;size23&quot;&gt;2.2 로그 변환(Log Transformation)&lt;/h3&gt;
&lt;p data-end=&quot;959&quot; data-start=&quot;926&quot; data-ke-size=&quot;size16&quot;&gt;RMSLE 기반 문제이므로 log1p 변환을 적용합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771045690233&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mercari_df['price'] = np.log1p(mercari_df['price'])&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  로그 변환 후 분포가 정규 분포에 가까워지며&lt;br /&gt;  모델이 고가 상품에 과도하게 끌려가지 않도록 합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-02-13 오후 9.07.07.png&quot; data-origin-width=&quot;585&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4L5u8/dJMcaaxtvWy/xJRuYmLU5bBkLt3y7k1Er0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4L5u8/dJMcaaxtvWy/xJRuYmLU5bBkLt3y7k1Er0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4L5u8/dJMcaaxtvWy/xJRuYmLU5bBkLt3y7k1Er0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4L5u8%2FdJMcaaxtvWy%2FxJRuYmLU5bBkLt3y7k1Er0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;585&quot; height=&quot;420&quot; data-filename=&quot;스크린샷 2026-02-13 오후 9.07.07.png&quot; data-origin-width=&quot;585&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-end=&quot;1114&quot; data-start=&quot;1097&quot; data-ke-size=&quot;size26&quot;&gt;3. 범주형 데이터 전처리&lt;/h2&gt;
&lt;h3 data-end=&quot;1152&quot; data-start=&quot;1116&quot; data-ke-size=&quot;size23&quot;&gt;3.1 category_name 분해 (대 / 중 / 소)&lt;/h3&gt;
&lt;p data-end=&quot;1189&quot; data-start=&quot;1154&quot; data-ke-size=&quot;size16&quot;&gt;Men/Tops/T-shirts 형태의 문자열을 분해합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771045729529&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def split_cat(category_name):
    try:
        return category_name.split('/')
    except:
        return ['Other_Null','Other_Null','Other_Null']
        
        
mercari_df['cat_dae'], mercari_df['cat_jung'], mercari_df['cat_so'] = \
zip(*mercari_df['category_name'].apply(split_cat))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 분리하는 이유는&lt;br /&gt;  &lt;b&gt;카테고리의 계층 정보&lt;/b&gt;를 모델에 명시적으로 전달하기 위함입니다.&lt;/p&gt;
&lt;h2 data-end=&quot;1569&quot; data-start=&quot;1554&quot; data-ke-size=&quot;size26&quot;&gt;4. 결측치 처리 전략&lt;/h2&gt;
&lt;pre id=&quot;code_1771045766012&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mercari_df['brand_name'] = mercari_df['brand_name'].fillna('Other_Null')
mercari_df['category_name'] = mercari_df['category_name'].fillna('Other_Null')
mercari_df['item_description'] = mercari_df['item_description'].fillna('Other_Null')&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1872&quot; data-start=&quot;1823&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1842&quot; data-start=&quot;1823&quot;&gt;결측 자체도 하나의 정보로 판단&lt;/li&gt;
&lt;li data-end=&quot;1872&quot; data-start=&quot;1843&quot;&gt;별도 제거 없이 &quot;Other_Null&quot;로 통합&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;1898&quot; data-start=&quot;1879&quot; data-ke-size=&quot;size26&quot;&gt;5. 텍스트 피처 벡터화 전략&lt;/h2&gt;
&lt;p data-end=&quot;1936&quot; data-start=&quot;1900&quot; data-ke-size=&quot;size16&quot;&gt;Mercari 문제의 핵심은 &lt;b&gt;텍스트 처리 전략 분리&lt;/b&gt;입니다.&lt;/p&gt;
&lt;h3 data-end=&quot;1968&quot; data-start=&quot;1938&quot; data-ke-size=&quot;size23&quot;&gt;5.1 name &amp;rarr; CountVectorizer&lt;/h3&gt;
&lt;pre id=&quot;code_1771045780895&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cnt_vec = CountVectorizer()
X_name = cnt_vec.fit_transform(mercari_df['name'])&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cnt_vec&amp;nbsp;=&amp;nbsp;CountVectorizer()&lt;br /&gt;X_name&amp;nbsp;=&amp;nbsp;cnt_vec.fit_transform(mercari_df['name'])&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-start=&quot;1938&quot; data-end=&quot;1968&quot; data-ke-size=&quot;size23&quot;&gt;5.2 item_description &amp;rarr; TF-IDF&lt;/h3&gt;
&lt;pre id=&quot;code_1771045803743&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;tfidf_descp = TfidfVectorizer(
    max_features=50000,
    ngram_range=(1,3),
    stop_words='english'
)
X_descp = tfidf_descp.fit_transform(mercari_df['item_description'])&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2375&quot; data-start=&quot;2328&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2345&quot; data-start=&quot;2328&quot;&gt;설명은 길고 문맥 정보 중요&lt;/li&gt;
&lt;li data-end=&quot;2375&quot; data-start=&quot;2346&quot;&gt;n-gram + TF-IDF가 성능 향상에 결정적&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;2410&quot; data-start=&quot;2382&quot; data-ke-size=&quot;size26&quot;&gt;6. 범주형 피처 원-핫 인코딩 (희소 행렬)&lt;/h2&gt;
&lt;p data-end=&quot;2462&quot; data-start=&quot;2412&quot; data-ke-size=&quot;size16&quot;&gt;고차원 범주형 데이터는 반드시 &lt;b&gt;희소 행렬(sparse matrix)&lt;/b&gt; 로 처리합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1771045820913&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from sklearn.preprocessing import OneHotEncoder

oh_encoder = OneHotEncoder()

X_brand = oh_encoder.fit_transform(mercari_df['brand_name'].values.reshape(-1,1))
X_item_cond_id = oh_encoder.fit_transform(mercari_df['item_condition_id'].values.reshape(-1,1))
X_shipping = oh_encoder.fit_transform(mercari_df['shipping'].values.reshape(-1,1))
X_cat_dae = oh_encoder.fit_transform(mercari_df['cat_dae'].values.reshape(-1,1))
X_cat_jung = oh_encoder.fit_transform(mercari_df['cat_jung'].values.reshape(-1,1))
X_cat_so = oh_encoder.fit_transform(mercari_df['cat_so'].values.reshape(-1,1))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  결과적으로 &lt;b&gt;160,000+ 차원의 희소 행렬&lt;/b&gt;이 생성됩니다.&lt;/p&gt;
&lt;h2 data-end=&quot;3138&quot; data-start=&quot;3108&quot; data-ke-size=&quot;size26&quot;&gt;7. 모든 피처 결합 (Sparse HStack)&lt;/h2&gt;
&lt;pre id=&quot;code_1771045834171&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from scipy.sparse import hstack

X_features_sparse = hstack([
    X_name, X_descp, X_brand,
    X_item_cond_id, X_shipping,
    X_cat_dae, X_cat_jung, X_cat_so
]).tocsr()&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3377&quot; data-start=&quot;3326&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3354&quot; data-start=&quot;3326&quot;&gt;CSR 형식은 연산 및 메모리 효율이 가장 좋음&lt;/li&gt;
&lt;li data-end=&quot;3377&quot; data-start=&quot;3355&quot;&gt;실무 대규모 텍스트 문제의 표준 방식&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;3402&quot; data-start=&quot;3384&quot; data-ke-size=&quot;size26&quot;&gt;8. 평가 지표: RMSLE&lt;/h2&gt;
&lt;pre id=&quot;code_1771045851071&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def rmsle(y,y_pred):
    return np.sqrt(np.mean(np.power(np.log1p(y)-np.log1p(y_pred),2)))&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3555&quot; data-start=&quot;3510&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3536&quot; data-start=&quot;3510&quot;&gt;가격 예측 문제에서 &lt;b&gt;상대 오차&lt;/b&gt;를 평가&lt;/li&gt;
&lt;li data-end=&quot;3555&quot; data-start=&quot;3537&quot;&gt;고가 상품의 과도한 영향 억제&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;3582&quot; data-start=&quot;3562&quot; data-ke-size=&quot;size26&quot;&gt;9. Ridge 회귀 모델 실험&lt;/h2&gt;
&lt;h3 data-end=&quot;3611&quot; data-start=&quot;3584&quot; data-ke-size=&quot;size23&quot;&gt;9.1 Item Description 제외&lt;/h3&gt;
&lt;pre id=&quot;code_1771045867493&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Ridge rmsle &amp;asymp; 0.498&lt;/code&gt;&lt;/pre&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-start=&quot;3584&quot; data-end=&quot;3611&quot; data-ke-size=&quot;size23&quot;&gt;9.2 Item Description 포함&lt;/h3&gt;
&lt;pre id=&quot;code_1771045887958&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Ridge rmsle &amp;asymp; 0.468&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;상품 설명 텍스트가 가격 예측에 매우 중요함&lt;/b&gt;을 확인할 수 있습니다.&lt;/p&gt;
&lt;h2 data-end=&quot;3784&quot; data-start=&quot;3763&quot; data-ke-size=&quot;size26&quot;&gt;10. LightGBM 회귀 모델&lt;/h2&gt;
&lt;pre id=&quot;code_1771045906288&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;lgbm_model = LGBMRegressor(
    n_estimators=200,
    learning_rate=0.5,
    num_leaves=125
)

LightGBM rmsle &amp;asymp; 0.457&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3967&quot; data-start=&quot;3933&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3947&quot; data-start=&quot;3933&quot;&gt;비선형 관계를 잘 학습&lt;/li&gt;
&lt;li data-end=&quot;3967&quot; data-start=&quot;3948&quot;&gt;범주형/텍스트 피처 혼합에 강함&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;4001&quot; data-start=&quot;3974&quot; data-ke-size=&quot;size26&quot;&gt;11. Ridge + LightGBM 앙상블&lt;/h2&gt;
&lt;pre id=&quot;code_1771045932021&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;preds = lgbm_preds * 0.45 + linear_preds * 0.55

최종 RMSLE &amp;asymp; 0.447&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  서로 다른 모델의 &lt;b&gt;오차 특성이 상호 보완&lt;/b&gt;됨&lt;br /&gt;  단일 모델 대비 안정적 성능 확보&lt;/p&gt;
&lt;hr data-end=&quot;4157&quot; data-start=&quot;4154&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;4171&quot; data-start=&quot;4159&quot; data-ke-size=&quot;size26&quot;&gt;12. 결론 정리&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;4294&quot; data-start=&quot;4173&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;4210&quot; data-start=&quot;4173&quot;&gt;Mercari 문제는 &lt;b&gt;대규모 희소 행렬 처리 능력&lt;/b&gt;이 핵심&lt;/li&gt;
&lt;li data-end=&quot;4233&quot; data-start=&quot;4211&quot;&gt;텍스트 피처 분리 전략이 성능을 좌우&lt;/li&gt;
&lt;li data-end=&quot;4252&quot; data-start=&quot;4234&quot;&gt;Ridge는 안정적 베이스라인&lt;/li&gt;
&lt;li data-end=&quot;4271&quot; data-start=&quot;4253&quot;&gt;LightGBM은 비선형 보완&lt;/li&gt;
&lt;li data-end=&quot;4294&quot; data-start=&quot;4272&quot;&gt;&lt;b&gt;앙상블이 최종 성능을 끌어올림&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Programming</category>
      <category>LightGBM</category>
      <category>PricePrediction</category>
      <category>ridge회귀</category>
      <category>SparseMatrix</category>
      <category>textmining</category>
      <category>가격예측</category>
      <category>머신러닝</category>
      <category>앙상블 MachineLearning</category>
      <category>텍스트분석</category>
      <category>희소행렬</category>
      <author>Lucas.Kim</author>
      <guid isPermaLink="true">https://fromeastlight.tistory.com/83</guid>
      <comments>https://fromeastlight.tistory.com/83#entry83comment</comments>
      <pubDate>Sat, 14 Feb 2026 14:12:35 +0900</pubDate>
    </item>
  </channel>
</rss>