Trực quan hóa dữ liệu trong python có lẽ là một trong những tính năng được sử dụng nhiều nhất cho khoa học dữ liệu với python trong thời đại ngày nay. Các thư viện trong python đi kèm với rất nhiều tính năng khác nhau cho phép người dùng tạo các biểu đồ tương tác, trang nhã và tùy biến cao
Trong bài viết này, chúng tôi sẽ đề cập đến việc sử dụng Matplotlib, Seaborn cũng như giới thiệu về các gói thay thế khác có thể được sử dụng trong trực quan hóa python
Trong Matplotlib và Seaborn, chúng tôi sẽ đề cập đến một số sơ đồ được sử dụng phổ biến nhất trong thế giới khoa học dữ liệu để dễ hình dung
Ở phần sau của bài viết, chúng ta sẽ xem xét một tính năng mạnh mẽ khác trong trực quan hóa python, ô con và trình bày hướng dẫn cơ bản để tạo ô con
Các gói hữu ích để trực quan hóa trong python
Matplotlib
Matplotlib là một thư viện trực quan hóa bằng Python cho các mảng 2D. Matplotlib được viết bằng Python và sử dụng thư viện NumPy. Nó có thể được sử dụng trong trình bao Python và IPython, máy tính xách tay Jupyter và máy chủ ứng dụng web. Matplotlib đi kèm với nhiều loại biểu đồ như đường, thanh, phân tán, biểu đồ, v.v. có thể giúp chúng ta đi sâu vào việc hiểu các xu hướng, mô hình, mối tương quan. Nó được giới thiệu bởi John Hunter vào năm 2002
sinh ra biển
Seaborn là một thư viện định hướng tập dữ liệu để tạo các biểu diễn thống kê trong Python. Nó được phát triển trên đỉnh matplotlib và để tạo các hình ảnh trực quan khác nhau. Nó được tích hợp với cấu trúc dữ liệu gấu trúc. Thư viện nội bộ thực hiện ánh xạ và tổng hợp cần thiết để tạo hình ảnh thông tin. Nên sử dụng giao diện Jupyter/IPython ở chế độ matplotlib
Bokeh
Bokeh là một thư viện hình ảnh tương tác cho các trình duyệt web hiện đại. Nó phù hợp với nội dung dữ liệu lớn hoặc truyền trực tuyến và có thể được sử dụng để phát triển các biểu đồ và bảng điều khiển tương tác. Có rất nhiều biểu đồ trực quan trong thư viện có thể được tận dụng để phát triển các giải pháp. Nó hoạt động chặt chẽ với các công cụ PyData. Thư viện rất phù hợp để tạo hình ảnh tùy chỉnh theo các trường hợp sử dụng được yêu cầu. Các hình ảnh cũng có thể được thực hiện tương tác để phục vụ mô hình kịch bản what-if. Tất cả các mã đều là mã nguồn mở và có sẵn trên GitHub
bàn thờ
Altair là một thư viện trực quan thống kê khai báo cho Python. API của Altair thân thiện với người dùng, nhất quán và được xây dựng dựa trên đặc tả JSON của Vega-Lite. Thư viện khai báo chỉ ra rằng trong khi tạo bất kỳ hình ảnh nào, chúng ta cần xác định liên kết giữa các cột dữ liệu với các kênh [trục x, trục y, kích thước, màu sắc]. Với sự trợ giúp của Altair, có thể tạo hình ảnh thông tin với mã tối thiểu. Altair giữ một ngữ pháp khai báo về cả trực quan hóa và tương tác
âm mưu
âm mưu. py là một thư viện trực quan tương tác, nguồn mở, cấp cao, khai báo và dựa trên trình duyệt dành cho Python. Nó chứa một loạt các hình ảnh hữu ích bao gồm biểu đồ khoa học, đồ thị 3D, biểu đồ thống kê, biểu đồ tài chính trong số những biểu đồ khác. Biểu đồ đồ thị có thể được xem trong sổ ghi chép Jupyter, tệp HTML độc lập hoặc được lưu trữ trực tuyến. Thư viện Plotly cung cấp các tùy chọn để tương tác và chỉnh sửa. API mạnh mẽ hoạt động hoàn hảo ở cả chế độ trình duyệt web và cục bộ
ggplot
ggplot là một triển khai Python của ngữ pháp đồ họa. Ngữ pháp đồ họa đề cập đến việc ánh xạ dữ liệu tới các thuộc tính thẩm mỹ [màu sắc, hình dạng, kích thước] và các đối tượng hình học [điểm, đường, thanh]. Các khối xây dựng cơ bản theo ngữ pháp của đồ họa là dữ liệu, geom [đối tượng hình học], thống kê [biến đổi thống kê], tỷ lệ, hệ tọa độ và khía cạnh
Sử dụng ggplot trong Python cho phép bạn phát triển dần các hình ảnh trực quan hóa thông tin, trước tiên hiểu được các sắc thái của dữ liệu, sau đó điều chỉnh các thành phần để cải thiện các hình ảnh đại diện
Làm thế nào để sử dụng hình dung đúng?
Để trích xuất thông tin cần thiết từ các hình ảnh khác nhau mà chúng tôi tạo ra, điều cốt yếu là chúng tôi sử dụng biểu diễn chính xác dựa trên loại dữ liệu và câu hỏi mà chúng tôi đang cố gắng hiểu. Chúng ta sẽ đi qua một tập hợp các biểu diễn được sử dụng rộng rãi nhất bên dưới và cách chúng ta có thể sử dụng chúng theo cách hiệu quả nhất
Biểu đồ cột
Biểu đồ thanh được sử dụng khi chúng tôi muốn so sánh các giá trị số liệu trên các nhóm dữ liệu con khác nhau. Nếu chúng ta có nhiều nhóm hơn, biểu đồ thanh sẽ được ưu tiên hơn biểu đồ cột
Biểu đồ thanh sử dụng Matplotlib
Biểu đồ thanh sử dụng Seaborn
#Creating bar plot sns.barplot[x = 'fare',y = 'who',data = titanic_dataset,palette = "Blues"] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] # Show the plot plt.show[]
Biểu đồ cột
Biểu đồ cột chủ yếu được sử dụng khi chúng ta cần so sánh một loại dữ liệu giữa các mục con riêng lẻ, ví dụ: khi so sánh doanh thu giữa các khu vực
Biểu đồ cột sử dụng Matplotlib
#Creating the dataset df = sns.load_dataset['titanic'] df=df.groupby['who']['fare'].sum[].to_frame[].reset_index[] #Creating the column plot plt.bar[df['who'],df['fare'],color = ['#F0F8FF','#E6E6FA','#B0E0E6']] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] #Show the plot plt.show[]
Biểu đồ cột sử dụng Seaborn
#Reading the dataset titanic_dataset = sns.load_dataset['titanic'] #Creating column chart sns.barplot[x = 'who',y = 'fare',data = titanic_dataset,palette = "Blues"] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] # Show the plot plt.show[]
Biểu đồ thanh được nhóm
Biểu đồ thanh được nhóm được sử dụng khi chúng ta muốn so sánh các giá trị trong các nhóm và nhóm phụ nhất định
Biểu đồ thanh được nhóm bằng Matplotlib
#Creating the dataset df = sns.load_dataset['titanic'] df_pivot = pd.pivot_table[df, values="fare",index="who",columns="class", aggfunc=np.mean] #Creating a grouped bar chart ax = df_pivot.plot[kind="bar",alpha=0.5] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] # Show the plot plt.show[]
Biểu đồ thanh được nhóm bằng Seaborn
#Reading the dataset titanic_dataset = sns.load_dataset['titanic'] #Creating the bar plot grouped across classes sns.barplot[x = 'who',y = 'fare',hue = 'class',data = titanic_dataset, palette = "Blues"] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] # Show the plot plt.show[]
Biểu đồ thanh xếp chồng lên nhau
Biểu đồ thanh xếp chồng lên nhau được sử dụng khi chúng tôi muốn so sánh tổng kích thước giữa các nhóm có sẵn và thành phần của các nhóm phụ khác nhau
Biểu đồ thanh xếp chồng lên nhau bằng Matplotlib
# Stacked bar chart #Creating the dataset df = pd.DataFrame[columns=["A","B", "C","D"], data=[["E",0,1,1], ["F",1,1,0], ["G",0,1,0]]] df.plot.bar[x='A', y=["B", "C","D"], stacked=True, width = 0.4,alpha=0.5] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] #Show the plot plt.show[]
Biểu đồ thanh xếp chồng sử dụng Seaborn
dataframe = pd.DataFrame[columns=["A","B", "C","D"], data=[["E",0,1,1], ["F",1,1,0], ["G",0,1,0]]] dataframe.set_index['A'].T.plot[kind='bar', stacked=True] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] # Show the plot plt.show[]
biểu đồ đường
Biểu đồ đường được sử dụng để biểu diễn các điểm dữ liệu liên tục. Hình ảnh này có thể được sử dụng hiệu quả khi chúng ta muốn hiểu xu hướng theo thời gian
Biểu đồ đường bằng Matplotlib
#Creating the dataset df = sns.load_dataset["iris"] df=df.groupby['sepal_length']['sepal_width'].sum[].to_frame[].reset_index[] #Creating the line chart plt.plot[df['sepal_length'], df['sepal_width']] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] #Show the plot plt.show[]
Biểu đồ đường sử dụng Seaborn
________số 8Biểu đồ tròn
Biểu đồ hình tròn có thể được sử dụng để xác định tỷ lệ của các thành phần khác nhau trong một tổng thể nhất định
Biểu đồ hình tròn sử dụng Matplotlib
________số 8Biểu đồ vùng
Biểu đồ vùng được sử dụng để theo dõi các thay đổi theo thời gian cho một hoặc nhiều nhóm. Biểu đồ vùng được ưu tiên hơn biểu đồ đường khi chúng tôi muốn nắm bắt các thay đổi theo thời gian cho nhiều hơn 1 nhóm
Biểu đồ vùng sử dụng Matplotlib
#Creating the dataset df = sns.load_dataset['titanic'] df=df.groupby['who']['fare'].sum[].to_frame[].reset_index[] #Creating the column plot plt.bar[df['who'],df['fare'],color = ['#F0F8FF','#E6E6FA','#B0E0E6']] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] #Show the plot plt.show[]0
Biểu đồ vùng sử dụng Seaborn
#Creating the dataset df = sns.load_dataset['titanic'] df=df.groupby['who']['fare'].sum[].to_frame[].reset_index[] #Creating the column plot plt.bar[df['who'],df['fare'],color = ['#F0F8FF','#E6E6FA','#B0E0E6']] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] #Show the plot plt.show[]1
biểu đồ cột
Biểu đồ cột được sử dụng để quan sát phân phối cho một biến duy nhất có ít điểm dữ liệu
Biểu đồ cột sử dụng Matplotlib
#Creating the dataset df = sns.load_dataset['titanic'] df=df.groupby['who']['fare'].sum[].to_frame[].reset_index[] #Creating the column plot plt.bar[df['who'],df['fare'],color = ['#F0F8FF','#E6E6FA','#B0E0E6']] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] #Show the plot plt.show[]2
Biểu đồ cột sử dụng Seaborn
#Creating the dataset df = sns.load_dataset['titanic'] df=df.groupby['who']['fare'].sum[].to_frame[].reset_index[] #Creating the column plot plt.bar[df['who'],df['fare'],color = ['#F0F8FF','#E6E6FA','#B0E0E6']] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] #Show the plot plt.show[]3
biểu đồ dòng
Biểu đồ đường được sử dụng để quan sát phân phối cho một biến duy nhất có nhiều điểm dữ liệu
Biểu đồ biểu đồ đường bằng Matplotlib
#Creating the dataset df = sns.load_dataset['titanic'] df=df.groupby['who']['fare'].sum[].to_frame[].reset_index[] #Creating the column plot plt.bar[df['who'],df['fare'],color = ['#F0F8FF','#E6E6FA','#B0E0E6']] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] #Show the plot plt.show[]4
Biểu đồ biểu đồ đường bằng Seaborn
#Creating the dataset df = sns.load_dataset['titanic'] df=df.groupby['who']['fare'].sum[].to_frame[].reset_index[] #Creating the column plot plt.bar[df['who'],df['fare'],color = ['#F0F8FF','#E6E6FA','#B0E0E6']] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] #Show the plot plt.show[]5
âm mưu phân tán
Biểu đồ phân tán có thể được tận dụng để xác định mối quan hệ giữa hai biến. Nó có thể được sử dụng hiệu quả trong trường hợp biến phụ thuộc có thể có nhiều giá trị cho biến độc lập
Biểu đồ phân tán bằng Matplotlib
#Creating the dataset df = sns.load_dataset['titanic'] df=df.groupby['who']['fare'].sum[].to_frame[].reset_index[] #Creating the column plot plt.bar[df['who'],df['fare'],color = ['#F0F8FF','#E6E6FA','#B0E0E6']] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] #Show the plot plt.show[]6
Biểu đồ phân tán bằng Seaborn
#Creating the dataset df = sns.load_dataset['titanic'] df=df.groupby['who']['fare'].sum[].to_frame[].reset_index[] #Creating the column plot plt.bar[df['who'],df['fare'],color = ['#F0F8FF','#E6E6FA','#B0E0E6']] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] #Show the plot plt.show[]7
Biểu đồ bong bóng
Biểu đồ phân tán có thể được tận dụng để mô tả và hiển thị mối quan hệ giữa ba biến
Biểu đồ bong bóng sử dụng Matplotlib
#Creating the dataset df = sns.load_dataset['titanic'] df=df.groupby['who']['fare'].sum[].to_frame[].reset_index[] #Creating the column plot plt.bar[df['who'],df['fare'],color = ['#F0F8FF','#E6E6FA','#B0E0E6']] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] #Show the plot plt.show[]8
Biểu đồ bong bóng sử dụng Seaborn
#Creating the dataset df = sns.load_dataset['titanic'] df=df.groupby['who']['fare'].sum[].to_frame[].reset_index[] #Creating the column plot plt.bar[df['who'],df['fare'],color = ['#F0F8FF','#E6E6FA','#B0E0E6']] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] #Show the plot plt.show[]9
cốt truyện hộp
Biểu đồ hộp được sử dụng để hiển thị hình dạng của phân phối, giá trị trung tâm và tính biến thiên của nó
Biểu đồ hộp sử dụng Matplotlib
#Reading the dataset titanic_dataset = sns.load_dataset['titanic'] #Creating column chart sns.barplot[x = 'who',y = 'fare',data = titanic_dataset,palette = "Blues"] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] # Show the plot plt.show[]0
Biểu đồ hộp sử dụng Seaborn
#Reading the dataset titanic_dataset = sns.load_dataset['titanic'] #Creating column chart sns.barplot[x = 'who',y = 'fare',data = titanic_dataset,palette = "Blues"] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] # Show the plot plt.show[]1
Biểu đồ thác nước
Biểu đồ thác nước có thể được sử dụng để giải thích quá trình chuyển đổi dần dần về giá trị của một biến có thể tăng hoặc giảm
#Reading the dataset titanic_dataset = sns.load_dataset['titanic'] #Creating column chart sns.barplot[x = 'who',y = 'fare',data = titanic_dataset,palette = "Blues"] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] # Show the plot plt.show[]2
biểu đồ Venn
Sơ đồ Venn được sử dụng để xem mối quan hệ giữa hai hoặc ba bộ mục. Nó làm nổi bật những điểm tương đồng và khác biệt
#Reading the dataset titanic_dataset = sns.load_dataset['titanic'] #Creating column chart sns.barplot[x = 'who',y = 'fare',data = titanic_dataset,palette = "Blues"] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] # Show the plot plt.show[]3
bản đồ cây
Bản đồ cây chủ yếu được sử dụng để hiển thị dữ liệu được nhóm và lồng trong cấu trúc phân cấp và quan sát sự đóng góp của từng thành phần
#Reading the dataset titanic_dataset = sns.load_dataset['titanic'] #Creating column chart sns.barplot[x = 'who',y = 'fare',data = titanic_dataset,palette = "Blues"] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] # Show the plot plt.show[]4
Biểu đồ thanh xếp chồng 100%
Biểu đồ thanh xếp chồng 100% có thể được tận dụng khi chúng tôi muốn hiển thị sự khác biệt tương đối trong mỗi nhóm cho các nhóm phụ khác nhau có sẵn
#Reading the dataset titanic_dataset = sns.load_dataset['titanic'] #Creating column chart sns.barplot[x = 'who',y = 'fare',data = titanic_dataset,palette = "Blues"] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] # Show the plot plt.show[]5
ô biên
Biểu đồ cận biên được sử dụng để đánh giá mối quan hệ giữa hai biến và kiểm tra phân phối của chúng. Các ô như vậy phân tán các ô có biểu đồ, ô hộp hoặc ô chấm ở lề của các trục x và y tương ứng
#Reading the dataset titanic_dataset = sns.load_dataset['titanic'] #Creating column chart sns.barplot[x = 'who',y = 'fare',data = titanic_dataset,palette = "Blues"] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] # Show the plot plt.show[]6
ô phụ
Các ô con là hình ảnh trực quan mạnh mẽ giúp so sánh dễ dàng giữa các ô
#Reading the dataset titanic_dataset = sns.load_dataset['titanic'] #Creating column chart sns.barplot[x = 'who',y = 'fare',data = titanic_dataset,palette = "Blues"] #Adding the aesthetics plt.title['Chart title'] plt.xlabel['X axis title'] plt.ylabel['Y axis title'] # Show the plot plt.show[]7
Tóm lại, có một loạt các thư viện khác nhau có thể được tận dụng hết tiềm năng của chúng bằng cách hiểu trường hợp sử dụng và yêu cầu. Cú pháp và ngữ nghĩa khác nhau giữa các gói và điều cần thiết là phải hiểu những thách thức và lợi thế của các thư viện khác nhau. Hình dung vui vẻ
Aishwarya A
Nhà khoa học dữ liệu và người đam mê phân tích
Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của Tác giả