当前位置: 首页 > 后端技术 > Python

超全Python可视化教程,收藏!

时间:2023-03-25 20:50:44 Python

今天小编总结了几种常用的可视化图表,通过调用plotly、matplotlib、altair、bokeh、seaborn等模块绘制了这些常用的可视化图表。通过调用streamlit模块,将生成的结果显示在大屏幕上。得到的效果如下图所示,下面就开始一步步开始可视化大屏的制作吧!标题、副标题和下拉框首先我们定义一下标题和副标题的内容。st.container()的代码如下:st.title("Python可视化合集")st.header("经典常用的Python可视化模块")write("""包括代码和可视化图表展示""")然后下拉框的制作,代码如下\plot_types=("Scatter","Histogram","Bar","Line","Boxplot")#选择要绘制的图表类型chart_type=st.selectbox("Chooseyourcharttype",plot_types)withst.container():st.subheader(f"Showing:{chart_type}")st.write("")为图表显示可以选择“双排”,如下图,也可以是沉浸式,即“单排”,如下图,代码如下two_cols=st.checkbox("2columns?",True)iftwo_cols:col1,col2=st.columns(2)#显示图表iftwo_cols:withcol1:show_plot(kind="Matplotlib")withcol2:show_plot(kind="Seaborn")与col1:show_plot(kind="PlotlyExpress")与col2:show_plot(kind="Altair")与col1:show_plot(kind="PandasMatplotlib")与col2:=show_plot(kind"Bokeh")else:withst.container():forlibinlibs:show_plot(kind=lib)对于双行显示方式,col1为左侧,由matplotlib、plotly、pandas绘制的图表右边是col2,也就是右边,放seaborn,altair,bokeh绘制的图表,上面代码中调用的show_plot()函数的代码如下#Generatechartdefshow_plot(kind:str):st.write(kind)ifkind==“Matplotlib”:plot=matplotlib_plot(chart_type,df)st.pyplot(plot)elifkind==“Seaborn”:plot=sns_plot(chart_type,df)kindplot=plotst.py="PlotlyExpress":plot=plotly_plot(chart_type,df)st.plotly_chart(plot,use_container_width=True)elifkind=="Altair":plot=altair_plot(Chart_type,df)st.altair_chart(plot,use_container_width=true),df)st.bokeh_chart(plot,use_container_width=True)是一系列if...else...判断。当绘制图表的模块为matplotlib时,调用相应的matplotlib_plot()函数。当绘制图表的模块为seaborn时,会调用对应的sns_plot()函数,同理我们来看其中一个函数sns_plot()的具体逻辑,代码如下defsns_plot(chart_type:str,df):"""生成seaborn绘制的图表"""fig,ax=plt.subplots()ifchart_type=="Scatter":withst.echo():Sns.scatterplot(data=df,x="bill_depth_mm",y="bill_length_mm",hue="spiecies",)PLT.TITLE("比尔深度byBillLangth")Elifchart_type=="Histogram":withst.echo():sns.histplot(data=df,x="bill_depth_mm")plt.title("CountofBillDepthObservations")"stelifBar_type==".echo():sns.barplot(data=df,x="species",y="bill_depth_mm")plt.title("MeanBillDepthbySpecies")elifchart_type=="Boxplot":withst.echo():sns.boxplot(data=df["bill_depth_mm"].dropna())plt.title("BillDepthObservations")elifchart_type=="Line":withst.echo():sns.lineplot(data=df,x=df.index,y="bill_length_mm")plt.title("BillLengthOverTime")returnfig其实就是一系列if...else...的判断。当要绘制的图形是散点图时,调用sns.scatterplot()函数,当要绘制直方图时,调用sns.histplot(),绘制直方图或折线图时也是如此画。最后,如果我们要查看源数据,也可以查看。代码如下#Showsourcedatawithst.container():show_data=st.checkbox("Seetherawdata?")ifshow_data:df#重点st.subheader("Notes")st.write("》——本次应用是通过python中的streamlit模块制作的——关注《关于数据分析与可视化》,了解更多数据分析与可视化知识与技巧""")output以上就是本次分享的全部内容。是的,欢迎关注公众号:Python编程学习圈,每日干货分享,发送“J”还可以领取大量学习资料或者上编程学习网了解更多编程技术知识。