大家好,小编为大家解答python怎么做可视化界面的问题。很多人还不知道python做可视化数据图表,现在让我们一起来看看吧!
Source code download: 本文相关源码
导入库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
设置rc动态参数,为了保证中文的正确显示
#设置rc动态参数
plt.rcParams['font.sans-serif']=['Simhei'] #显示中文
plt.rcParams['axes.unicode_minus']=False #设置显示中文后,负号显示受影响,显示负号
散点图
plt.figure(figsize=(8,6)) #设置画布大小
plt.scatter(df_cl["经度"],df_cl["维度"]) #设置数据源,x轴数据源和y轴数据源
plt.xlabel("经度",fontsize = 12)#设置x轴标签
plt.ylabel("维度",fontsize = 12)#设置y轴标签
plt.title("农作物分布",fontsize = 14)#设置标题
plt.yticks(range(0,91,30))#设置y轴的刻度
plt.xticks(range(0,181,30))#设置x轴的刻度
plt.show()
气泡图
plt.figure(figsize=(8,6))
plt.scatter(df_cl["经度"],df_cl["维度"],s=df_cl["产量"],alpha=0.6) #增加s气泡的大小取值,alpha设置透明度
#s设置点的尺寸,可以是标量,也可以是序列,alpha设置点的透明度
plt.xlabel("经度",fontsize = 12)#设置x轴标签
plt.ylabel("维度",fontsize = 12)#设置y轴标签
plt.title("农作物分布",fontsize = 14)#设置标题
plt.yticks(range(0,91,30))#设置y轴的刻度
plt.xticks(range(0,181,30))#设置x轴的刻度
plt.show()
折线图
plt.figure(figsize=(14,6))
#在一个图内画多条折线,注意x轴数据源相同,y轴是不同数据源
plt.plot(df.index,df["收盘价"])
plt.plot(df.index,df["最高价"])
plt.plot(df.index,df["最低价"])
plt.plot(df.index,df["开盘价"])
plt.xticks(range(len( df.index)), df.index,rotation=30)#rotation=30把标签倾斜30
plt.xlabel("时间",fontsize = 12)
plt.ylabel("股价",fontsize = 12)
plt.title("2012年8-9月股价折线图",fontsize = 14)
plt.legend(["收盘价","最高价","最低价","开盘价"],loc=4);#loc设定图例的位置,4为右下
普通纵向条形图
plt.figure(figsize=(12,6))
plt.bar(gp.mean().index,gp.mean()["A"],width=0.6) #设定x轴数据源,y轴数据源,width设定条形柱的宽度
plt.xlabel("各销售小组",fontsize = 12)
plt.ylabel("A产品销售额",fontsize = 12)
plt.title("各组A产品的平均销售额",fontsize = 14)
plt.show()
堆积条形图
plt.figure(figsize=(12,6)) #设置画布大小
plt.bar(gp.mean().index,gp.mean()["A"],width=0.6)
plt.bar(gp.mean().index,gp.mean()["B"],width=0.6,bottom=gp.mean()["A"])
#bottom表示这个图从那个起点开始画,就是落在a组的数据上
plt.bar(gp.mean().index,gp.mean()["C"],width=0.6,bottom=gp.mean()["A"]+gp.mean()["B"])
#为什么有index.index得到的是x轴的值
plt.xlabel("各销售小组",fontsize = 12)
plt.ylabel("产品销售额",fontsize = 12)
plt.title("各组产品的平均销售额",fontsize = 14)
plt.legend(["A","B","C"]) #设置图例
plt.show()
多个不同类别的条形图
df_m.plot.bar("分组",
["A","B","C"],
figsize=(14,6),
rot=360,
title="三种产品销售额条形图");
#rot=360标签倾斜度
横向条形图
plt.figure(figsize=(12,6))
plt.barh(gp.mean().index,gp.mean()["A"],height=0.6)
plt.xlabel("各销售小组",fontsize = 12)
plt.ylabel("A产品销售额",fontsize = 12)
plt.title("各组A产品的平均销售额",fontsize = 14)
plt.show()
横向堆积图
plt.figure(figsize=(12,6)) #设置画布大小
plt.barh(gp.mean().index,gp.mean()["A"],height=0.6)
plt.barh(gp.mean().index,gp.mean()["B"],height=0.6,left=gp.mean()["A"]) #left表示这个图从那个起点开始画,就是落在a组的数据上
plt.barh(gp.mean().index,gp.mean()["C"],height=0.6,left=gp.mean()["A"]+gp.mean()["B"]) #为什么有index.index得到的是Y轴的坐标标签
plt.xlabel("产品销售额",fontsize = 12)
plt.ylabel("各销售小组",fontsize = 12)
plt.title("各组产品的平均销售额",fontsize = 14)
plt.legend(["A","B","C"]) #设置图例
plt.show()
饼图
#查看dataframe中一列的数据占比
#数据源取某一列
plt.figure(figsize=(6,6))
#labels 标签
plt.pie(gp_c["C"],
labels=gp_c.index,
autopct="%.2f%%")
plt.title("销售占比")
plt.show()
#查看一行中数据占比
plt.figure(figsize=(6,6))
#labels 标签
plt.pie(gp_c.iloc[0,0::],
labels=["A","B","C"],
autopct="%.2f%%",
explode=[0.11,0.05,0.01])#设置饼与饼之间的缝隙
plt.title("一组销售占比")
plt.show()
箱型图/箱线图/盒须图
plt.figure(figsize=(10,5))
plt.boxplot((stu["语文"],stu["数学"],stu["英语"]),
notch=True, #中位数线是黄色的线,在中位数线位置显示缺口
sym="*", #显示异常值为星号,默认为一个圈
# vert=False #设置箱体的方向,默认是纵向,false为横向
# whis=1, #设置异常值范围,默认是上下四分位加减1.5iqr
meanline=True, #显示均值线
showmeans=True) #显示均值线
plt.title("学生成绩")
plt.xticks(np.arange(1,4), ["语文","数学","英语"]) #设置x轴的坐标标签
plt.xlabel("学科",fontsize=12)
plt.ylabel("成绩",fontsize=12)
plt.show()