【Python】面向小白的Python可视化教程,超全的!
今天小編總結(jié)歸納了若干個(gè)常用的可視化圖表,并且通過(guò)調(diào)用plotly、matplotlib、altair、bokeh和seaborn等模塊來(lái)分別繪制這些常用的可視化圖表,最后無(wú)論是繪制可視化的代碼,還是會(huì)指出來(lái)的結(jié)果都會(huì)通過(guò)調(diào)用streamlit模塊展示在一個(gè)可視化大屏,出來(lái)的效果如下圖所示
那我們接下去便一步一步開(kāi)始可視化大屏的制作吧!
標(biāo)題、副標(biāo)題以及下拉框
首先我們對(duì)標(biāo)題、副標(biāo)題部分的內(nèi)容,代碼如下
with?st.container():st.title("Python可視化合集")st.header("經(jīng)典常用的Python可視化模塊")st.write("""包括代碼和可視化圖表展示""")然后便是下拉框的制作,代碼如下
對(duì)于圖表的展示可以選擇是“雙排式”的,如下圖所示
也可以選擇是沉浸式的,也即是“單排式”的,如下圖所示
代碼如下
two_cols?=?st.checkbox("2?columns?",?True) if?two_cols:col1,?col2?=?st.columns(2)#?展示圖表 if?two_cols:with?col1:show_plot(kind="Matplotlib")with?col2:show_plot(kind="Seaborn")with?col1:show_plot(kind="Plotly?Express")with?col2:show_plot(kind="Altair")with?col1:show_plot(kind="Pandas?Matplotlib")with?col2:show_plot(kind="Bokeh") else:with?st.container():for?lib?in?libs:show_plot(kind=lib)對(duì)于雙排式的展示方式而言,col1也就是左邊,放置的是matplotlib、plotly、以及pandas繪制出來(lái)的圖表,右邊也就是col2也就是右邊,放置的是seaborn、altair以及bokeh繪制出來(lái)的圖表,而上述代碼中調(diào)用的show_plot()函數(shù)代碼如下
#?生成圖表 def?show_plot(kind:?str):st.write(kind)if?kind?==?"Matplotlib":plot?=?matplotlib_plot(chart_type,?df)st.pyplot(plot)elif?kind?==?"Seaborn":plot?=?sns_plot(chart_type,?df)st.pyplot(plot)elif?kind?==?"Plotly?Express":plot?=?plotly_plot(chart_type,?df)st.plotly_chart(plot,?use_container_width=True)elif?kind?==?"Altair":plot?=?altair_plot(chart_type,?df)st.altair_chart(plot,?use_container_width=True)elif?kind?==?"Pandas?Matplotlib":plot?=?pd_plot(chart_type,?df)st.pyplot(plot)elif?kind?==?"Bokeh":plot?=?bokeh_plot(chart_type,?df)st.bokeh_chart(plot,?use_container_width=True)是一系列if...else...的判斷,當(dāng)繪制圖表的模塊是matplotlib時(shí)就調(diào)用對(duì)應(yīng)的matplotlib_plot()函數(shù),當(dāng)繪制圖表的模塊是seaborn時(shí)就調(diào)用對(duì)應(yīng)的sns_plot()函數(shù),依次同理。我們來(lái)看其中一個(gè)函數(shù)sns_plot()的具體邏輯,代碼如下
def?sns_plot(chart_type:?str,?df):"""?生成seaborn繪制的圖表?"""fig,?ax?=?plt.subplots()if?chart_type?==?"Scatter":with?st.echo():sns.scatterplot(data=df,x="bill_depth_mm",y="bill_length_mm",hue="species",)plt.title("Bill?Depth?by?Bill?Length")elif?chart_type?==?"Histogram":with?st.echo():sns.histplot(data=df,?x="bill_depth_mm")plt.title("Count?of?Bill?Depth?Observations")elif?chart_type?==?"Bar":with?st.echo():sns.barplot(data=df,?x="species",?y="bill_depth_mm")plt.title("Mean?Bill?Depth?by?Species")elif?chart_type?==?"Boxplot":with?st.echo():sns.boxplot(data=df["bill_depth_mm"].dropna())plt.title("Bill?Depth?Observations")elif?chart_type?==?"Line":with?st.echo():sns.lineplot(data=df,?x=df.index,?y="bill_length_mm")plt.title("Bill?Length?Over?Time")return?fig其實(shí)也是一系列if...else...的判斷,當(dāng)所要繪制的圖表是散點(diǎn)圖時(shí),調(diào)用的是sns.scatterplot()函數(shù),所要繪制的是直方圖時(shí),調(diào)用的是sns.histplot(),繪制的柱狀圖或者是折線圖時(shí)也是同理
最后要是我們想要查看源數(shù)據(jù)時(shí),也可以查看,代碼如下
#?展示源數(shù)據(jù) with?st.container():show_data?=?st.checkbox("See?the?raw?data?")if?show_data:df#?要點(diǎn)st.subheader("Notes")st.write("""-?這個(gè)應(yīng)用是通過(guò)python當(dāng)中的streamlit模塊制作出來(lái)的-?關(guān)注"關(guān)于數(shù)據(jù)分析與可視化",學(xué)習(xí)更多數(shù)據(jù)分析和可視化知識(shí)與技能""")output
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載(圖文+視頻)機(jī)器學(xué)習(xí)入門系列下載中國(guó)大學(xué)慕課《機(jī)器學(xué)習(xí)》(黃海廣主講)機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)交流qq群955171419,加入微信群請(qǐng)掃碼:總結(jié)
以上是生活随笔為你收集整理的【Python】面向小白的Python可视化教程,超全的!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【机器学习】情侣、基友、渣男和狗-基于时
- 下一篇: 【机器学习】GitHub 标星17.4K