seaborn結合pandas的數據展示

五分鐘快速掌握pandas,請看這篇博客:

https://blog.csdn.net/zhangfengBX/article/details/104978323

seaborn快速瞭解案例

散點圖:

散點圖是統計可視化的重要組成部分。它使用點雲來描述兩個變量的聯合分佈,其中每個點代表數據集中的一個觀察。這種描繪可以推斷出大量關於它們之間是否有任何有意義的關係的信息。
更多散點圖介紹,請訪問官網查看:http://seaborn.pydata.org/generated/seaborn.scatterplot.html#seaborn.scatterplot

代碼:

import matplotlib.pyplot as plt
import seaborn as sns
import seaborn
sns.set(style="darkgrid") #這是seaborn默認的風格

#scatterplot參數  
# seaborn.scatterplot(x=None, y=None, hue=None, style=None, size=None,
#                     data=None, palette=None, hue_order=None, hue_norm=None, sizes=None,
#                     size_order=None, size_norm=None, markers=True, style_order=None,
#                     x_bins=None, y_bins=None, units=None, estimator=None, ci=95, n_boot=1000,
#                     alpha='auto', x_jitter=None, y_jitter=None, legend='brief', ax=None)
tips = sns.load_dataset("tips")
cmap = sns.cubehelix_palette(dark=.3, light=.8, as_cmap=True)

ax = sns.scatterplot(x="total_bill", y="tip",
                     hue="size", size="size",
                     sizes=(20, 200), palette=cmap,
                     legend="full", data=tips)
fig=plt.gcf()
plt.show()
fig.savefig('test.png')   #保存圖片到本地

運行結果:

線圖:

線圖是數據的一種的表示形式。在圖上,用線條數據的變化趨勢、數據模擬或行爲變化等形成的路線。

代碼:

import matplotlib.pyplot as plt
import seaborn as sns
import seaborn
sns.set(style="darkgrid") #這是seaborn默認的風格
ax = sns.lineplot(x="timepoint", y="signal", hue="event",
                  units="subject", estimator=None, lw=1,
                  data=fmri.query("region == 'frontal'"))
plt.show()

運行結果:

關係圖:

提供對幾個不同軸級功能的訪問,這些功能通過子集的語義映射顯示兩個變量之間的關係。該kind參數選擇要使用的基礎軸級功能:

額外的關鍵字參數將傳遞給基礎函數,因此您應該參考文檔以瞭解每種類型的選項。之間的關係xy可以使用顯示的數據的不同子集huesizestyle參數。這些參數控制使用哪種視覺語義來標識不同的子集。通過使用所有三種語義類型,可以獨立顯示多達三個維度,但是這種情節樣式可能難以解釋,並且通常無效。使用冗餘語義(即huestyle對於同一個變量而言)和冗餘語義都 有助於使圖形更易於訪問。

代碼:

import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="darkgrid") #這是seaborn默認的風格
tips = sns.load_dataset("tips")
g = sns.relplot(x="total_bill", y="tip", hue="day", col="time", data=tips)
plt.show()

效果:

pandas提供數據

隨機生成一堆數據,然後展示出來。


import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="darkgrid") #這是seaborn默認的風格
index = pd.date_range("20010325", periods=100,freq="m",name="日期")
plt.close("all")
data = np.random.randn(100, 3).cumsum(axis=0)
wide_df = pd.DataFrame(data, index, list("abc"))
print(index)
print(data)
print(wide_df)
plt.rcParams['font.sans-serif'] = ['SimHei']  # 解決中文顯示問題-設置字體爲黑體
plt.rcParams['axes.unicode_minus'] = False  # 解決保存圖像是負號'-'顯示爲方塊的問題
ax = sns.scatterplot(data=wide_df)
plt.savefig("pandas.png")
plt.show()

效果:

pandas讀取Excel文件數據展示

前面的例子數據都不太方便看,下面來一個非常簡單的數據,來展示散點圖。

data.csv 文件內容:

a,b,c,d,e
1,2,3,4,5
1,1,2,3,1
1,2,3,4,1
4,3,4,2,3
4,3,4,2,3kk

執行代碼:(讀取Excel文件,展示其中的a、b、d三列屬性的數值)

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
excel_data = pd.read_csv("data.csv")
print("讀取文件內容:")
print(excel_data)
show_data = excel_data.loc[:,['a','b','d']]
print("提取後的字段數據")
print(show_data)
print("轉置之後的數據:")
print(show_data.T)
# plt_pd = sns.scatterplot(data=show_data)
ax = sns.scatterplot(data=show_data)
plt.savefig('excel.png')
plt.show()

後臺打印結果:(可以看着數據,和圖對比)

讀取文件內容:
   a  b  c  d    e
0  1  2  3  4    5
1  1  1  2  3    1
2  1  2  3  4    1
3  4  3  4  2    3
4  4  3  4  2  3kk
提取後的字段數據:
   a  b  d
0  1  2  4
1  1  1  3
2  1  2  4
3  4  3  2
4  4  3  2
轉置之後的數據:
   0  1  2  3  4
a  1  1  1  4  4
b  2  1  2  3  3
d  4  3  4  2  2

執行結果

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章