寫在前面的話
好久不來,隨便看了下CSDN推送的熱門文章,標題都相當無恥了啊,大家爲了騙閱讀量都把標題取得這麼騷。而且像我這麼俗的人,肯定也是必須要爲強權低頭的,媽呀。這個標題我自己看着眼睛都有點疼,不知道爲毛現在程序○都喜歡搞成專業網絡寫手,現在還讓不讓人活了。。。
一向不正經的正文
1. 什麼是 seaborn
seaborn 可以看成是matplotlib的一個輔助和升級的工具,可能叫升級有點不太準確,主要是爲了給matplotlib 做輔助的吧,它很有自己的風格。我覺得畫圖還是不錯的,大家有時間可以學起來。
今天我們就介紹一下,怎麼使用seaborn 畫出唯美的科研論文圖片。到底怎麼個唯美法呢,我們先來看看幾個例子,
哈哈哈,要是有人覺得不好,emmm, 那也沒有辦法,我喜歡就好,哈哈哈哈,而且別人的意見我也不是很在意,此處應該有一個厭世臉 = =
2. 相關資料
大家可以在下面這些網站上看到更多的教程
https://python-graph-gallery.com/
關於seaborn 用的例子,我們可以在github上找到相應的數據集,具體的可以參見下面的這個連接
https://github.com/mwaskom/seaborn-data
你要用seaborn 作圖,主要是要明白這個的作圖的數據集要怎麼創建。現在很多網站給的例子都是官網上的例子,給一個隨機數,然後生成一個圖片,可能學習模仿的意義不打,直接用數據集,教你手把手構建屬於自己的數據集,然後畫圖,是本文的主要任務。
使用
我們要使用seaborn 當然是要先下載安裝好它,我們可以這麼做:
pip install seaborn
在這裏我們會藉助pandas 來處理我們的數據, 所以也需要安裝一下,pandas
pip install pandas
我們以熱力圖來作爲例子,講解怎麼使用seaborn 來作圖
# 引入基本的模塊
import numpy as np
import seaborn as sb
import matplotlib.pyplot as plt
# 創造一個隨機的矩陣作爲我們的輸入數據
data = np.random.rand(4, 6)
heat_map = sb.heatmap(data)
plt.show()
這樣,我們們就得到上面這個圖片。當然這個的實用性太差了,我們要自己定製我們的數據集。
畫我們自己的專屬圖片,可以看下面的這個例子。
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
sns.set()
# 加載我們自己的數據集,這個數據集是一個叫做flights的CSV文件
flights = sns.load_dataset("flights")
flights = flights_long.pivot("month", "year", "passengers")
ax = sns.heatmap(flights)
plt.title("Heatmap Flight Data")
plt.show()
你就可以得到下面的這個圖片了
flights = sns.load_dataset("flights")
flights = flights_long.pivot("month", "year", "passengers")
上面的語句可以替換爲
df = pd.pivot_table(data=sns.load_dataset("flights"),
index='month',
values='passengers',
columns='year')
可能這樣大家就更好理解每一個是什麼意思了,就是每一列表示的是年份,每一個月就是縱座標,然後旁邊的顏色帶代表的是乘客的數目,顏色越深就說明乘客數目越多。
這個flights 的數據集是什麼樣子的,我們可以看一下
這個是一個CSV的表格,它是有表頭的,表頭的數據必須和我們的pivot的寫的行列內容一致否則就會報錯。
然後我們發現這個表可以看成是一個笛卡爾集,然後你要話這個heatmap也要構建一個類似的數據集就可以了。
之後在看官網的教程,不妨先仔細看看他的數據集是什麼構建的,然後就能依葫蘆畫瓢完成對應的圖片了
seaborn 支持用戶自己換顏色,你可以這麼做
>>> heat_map = sb.heatmap(data, cmap="YlGnBu")
cmap這裏替換成你想要的顏色模式
Reference
https://likegeeks.com/seaborn-heatmap-tutorial/
喜歡我的話,咪咪咪~