>백엔드 개발 >파이썬 튜토리얼 >이제부터 Python의 강력한 그리기 도구인 matplotlib를 사용하여 차트를 제어할 수 있습니다.

이제부터 Python의 강력한 그리기 도구인 matplotlib를 사용하여 차트를 제어할 수 있습니다.

coldplay.xixi
coldplay.xixi앞으로
2020-09-14 13:45:032214검색

이제부터 Python의 강력한 그리기 도구인 matplotlib를 사용하여 차트를 제어할 수 있습니다.

관련 학습 권장사항: python tutorial

먼저, 또 다른 매우 유용한 데이터 분석 라이브러리인 matplotlib을 소개하겠습니다.



matplotlib 소개

대학에서 수학적 모델링 대회에 참가했거나 MATLAB을 사용해 본 적이 있다면 이 소프트웨어의 그리기 기능에 깊은 인상을 받을 것입니다. MATLAB은 다양한 함수와 수치분포 이미지를 매우 쉽고 편리하게 만들 수 있습니다. 사용해보지 않으셔도 상관없으니 알아두시면 좋을 것 같습니다. MATLAB은 사용하기 쉽지만 결국 유료 소프트웨어이기 때문에 많은 사람들이 MATLAB보다 Python의 구문을 선호합니다.

그래서 MATLAB이 고려되었습니다. 나중에 마스터가 MATLAB의 그리기 도구를 모방하고 Python에서 유사한 그리기 도구를 개발했습니다. 오늘 글에서 다룰 matplotlib은 Python, 데이터 분석, 머신러닝 분야에서 가장 널리 사용되는 플로팅 툴킷 중 하나입니다. 얼마 전 미국 정부는 MATLAB이 중국의 여러 대학에서 MATLAB 사용을 금지하도록 발표한 일에 연루되었습니다. 일부 사람들은 대신 Python에서 일부 오픈 소스 도구를 사용할 수 있다고 제안했습니다. MATLAB의 다른 강력한 도구인 Python이 반드시 이를 대체할 수는 없지만 적어도 그래픽 분야에서는 문제가 되지 않습니다.

matplotlib의 기본 사용법 matplotlib이 널리 인기를 끄는 주된 이유는 편리하고 사용하기 쉽다는 것입니다. 이해하기 쉬운 몇 가지 고전적인 예를 살펴보겠습니다. 코드 라인 매우 높은 품질의 이미지를 만들 수 있습니다.

matplotlib 패키지 아래에 pyplot 라이브러리를 사용하고 있습니다. 이름에서도 Python 라이브러리임을 알 수 있습니다. Anaconda와 같은 완전한 Python 패키지 관리 도구를 설치한 경우 이 패키지는 기본적으로 이미 설치되어 있습니다. 그렇지 않은 경우 pip를 사용하여 설치할 수도 있습니다. 명령도 매우 간단합니다.

pip install matplotlib复制代码

패키지를 설치한 후 우리가 일반적으로 사용하는 방법은 이름을 plt로 바꾸는 것이므로, 일부 소스 코드와 다른 마스터의 코드를 읽어보면 그림을 그릴 때 plt.xxx가 자주 나타나는데 그렇게 탄생했습니다.

import matplotlib.pyplot as plt复制代码

플롯에는 일반적으로 사용되는 여러 가지 그리기 도구가 있습니다. 첫 번째는 플롯이라고 하는 선 그래프 또는 곡선 그래프를 만드는 것입니다. 두 번째 유형은 hist라는 막대 차트이고, 세 번째 유형은 분산형 차트이며, 네 번째 유형은 파이 차트입니다. 또한 입체적인 이미지도 만들 수 있지만 일상생활에서는 거의 사용되지 않으며 대부분 자신의 실력을 과시하기 위해 사용됩니다.

곡선 그래프

플롯은 실제로 곡선 그래프를 만드는 데 사용됩니다. 사용된 방법은 데이터 포인트를 직렬로 연결하여 부드러운 곡선을 형성하는 점 그리기 표현입니다. 물론 다중선과 직선도 가능합니다. 그래프의 최종 효과는 전적으로 데이터에 의해 결정됩니다.

가장 기본적인 사용법에서는 x축과 y축 값을 각각 나타내는 두 개의 목록만 전달하면 됩니다. 예를 들어 물류 기능 이미지를 만들고 싶습니다.

x = np.linspace(-10, 10, 100)y = 1 / (1 + np.exp(-x))plt.plot(x, y)plt.show()复制代码

위 코드에서는 먼저 numpy의 linspace 함수를 사용하여 -10과 10 사이의 numpy 배열을 생성합니다. 이 배열에는 -10과 10 사이에 균등하게 분포된 100개의 점이 있습니다. 이에 해당하는 로지스틱 함수의 값인 을 계산합니다. 이 함수는 모두가 익숙할 것이라고 생각합니다. x는 100개 포인트의 목록이고, 해당 y도 100개 포인트의 목록입니다. 즉, y에 대응하는 x는 점쌍을 이루며, 이는 그림에서의 좌표를 나타낸다.

어떤 변환도 할 필요가 없습니다. 이 두 배열을 plt에 전달하기만 하면 좌표 매핑이 자동으로 완료됩니다. 최종 효과는 다음과 같습니다.

이미지를 그리는 것 외에도 데이터를 쉽게 볼 수 있도록 좌표축에 점을 그리는 효과도 꽤 좋은 것을 알 수 있습니다.

Histogram

hist를 사용하여 histogram을 그릴 수 있는데, 이는 우리에게 매우 일반적인 이미지이기도 합니다. 금융 분야에서는 데이터의 추세를 반영하기 위해 히스토그램을 자주 사용합니다. 데이터 분석 및 기계 학습에서도 특정 특성이나 값의 분포를 반영하기 위해 히스토그램을 사용하는 경우가 많습니다.

在直方图当中我们只需要传入一个数组,就是我们要求分布的数组,另外我们需要再输入一个参数bins,表示我们希望将数据分桶的数量。然后它会绘制出每个桶中数据数量的直方图,这样我们就可以很直观地看出分布来了。

x = np.random.normal(size=200)plt.hist(x,bins=30)plt.show()复制代码

这里我们调用numpy当中以正态分布概率随机的函数,得到的结果应该是正态分布的。

我们查看图像,这个结果和我们的预期基本吻合。

点状图

第三种图像叫做散点图,它反应的是每个点的分布情况。比如我们之前在介绍KNN和Kmeans模型的时候曾经都作过散点图,一个点代表一个样本,通过散点图我们观察的也是样本和数据分布的情况。但是和直方图相比它更加得直观,我们能直接看到分布,而不是一个分布的统计结果。

但是它也有缺点,缺点就是我们只能观察二维平面当中的点的分布,毕竟超过3维的维度就没办法绘制了。而且3维的数据分布也不是很好观察。

同样散点图的绘制也很简单,我们只需要调用scatter函数传入x和y的数组即可。

x = np.random.rand(100)y = np.random.rand(100)plt.scatter(x, y)复制代码

这里我们的x和y都是随机分布,所以得到的结果是散乱没有规律的点。

饼状图

最后我们来看下饼状图,饼状图也很常用,虽然也是反映的数据分布,但是它更多是体现某一个值占的比例。通过饼状图,我们可以很直观地了解到这点。

我们可以传入一个list进入pie函数,plot会根据list当中值在总体的占比绘制饼状图。我们来看个很简单的例子:

a = np.array([0.5, 0.3, 0.2, 0.1, 0.8])plt.pie(a)复制代码

得到的结果如下:

이전 결과와 비교하면 파이 차트는 영역을 구분하기 위해 서로 다른 색상을 사용하지만 각 영역이 무엇을 나타내는지 직관적으로 파악하기 어렵기 때문에 약간 불분명합니다. 이 문제는 더 많은 정보를 표시하고 데이터를 더욱 생생하고 명확하게 만들기 위해 일부 매개변수와 설정을 전달할 수 있습니다.

프로그래밍 학습에 대해 더 자세히 알고 싶다면 php training 칼럼을 주목해주세요!

위 내용은 이제부터 Python의 강력한 그리기 도구인 matplotlib를 사용하여 차트를 제어할 수 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.im에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제