zoukankan      html  css  js  c++  java
  • 可视化——图表

    1.导入相关库

    1 import numpy as np
    2 import pandas as pd
    3 import matplotlib.pyplot as plt
    4 5 #%matplotlib inline #可以内嵌绘图
    6 7 plt.rcParams['font.sans-serif']=['Simhei']
    8 plt.rcParams['axes.unicode_minus']=False
    9 %matplotlib inline

    2.柱状图

    柱形图,又称长条图、柱状统计图,通常用来比较两个或以上的数据,或维度较为简单的数据集,该图通常用于数据的对比。

    1 zzt = pd.read_excel('可视化图表案例数据.xlsx',sheet_name='柱状图')
    2 3 zzt.head()
     放款产品类型数量
    0 小贷产品 11769
    1 普通收入人群产品 3359
    2 高收入人群产品 765
    3 教育产品 3352
    4 公积金产品 3301

    </div>

     

    1 zzt.rename(columns={'数量':'成交总数'},inplace=True)
    2 plt.figure(figsize=(10,5)) #figsize是为我们创建一个指定的长和宽的画布
    3 plt.title('各产品推广情况') #添加大标题
    4 plt.bar(zzt['放款产品类型'],zzt['成交总数'])
    5 plt.xlabel('产品类型') #为x轴添加标题
    6 plt.ylabel('成交总数') #y为y轴添加标题
    7 8 plt.show()
     
     1 plt.figure(figsize=(12,6),facecolor='oldlace') 
     2 #figsize是为我们创建一个指定的长和宽的画布;facecolor可以帮你设置画布的底色
     3  4 plt.title('各产品推广情况',fontsize=18,color='black') #添加大标题
     5  6 plt.bar(zzt['放款产品类型'],zzt['成交总数'],alpha=0.8,width=0.6,color='cornflowerblue') #alpha可以设置透明度;width可以控制柱形图的宽度
     7  8 for x,y in enumerate(zzt['成交总数'].values):
     9     plt.text(x-0.2,y,'%s' %y,fontsize=14,color='tomato')
    10 11 12 plt.xlabel('产品类型',fontsize=14) #为x轴添加标题
    13 plt.ylabel('成交总数',fontsize=14) #y为y轴添加标题
    14 15 plt.xticks(rotation=-30,color='teal')
    16 plt.yticks(color='teal')
    17 18 plt.show()

     

    3.条形图

    条形图是用宽度相同的条形的长短来表示数据多少的图形,同样适用于与对比,是横向的柱形图。当出现以下情况时,推荐使用条形图: 1)数据类别较多,或部分数据量在图中显示较长时; 2)数据名称或字段名称较长且不能缩短时。

     
    1 txt = pd.read_excel('可视化图表案例数据.xlsx',sheet_name='条形图') 
    2 txt 
     

     

     
     地区利润
    0 上海 121650.088
    1 山东 385425.488
    2 吉林 153058.171
    3 湖南 156735.929
    4 黑龙江 257172.062
    5 河南 199519.691
    6 河北 172031.685
    7 广东 336670.537
    8 福建 142601.732
    9 安徽 149028.810

    </div>

     

    1 plt.figure(figsize=(10,5)) #figsize是为我们创建一个指定的长和宽的画布
    2 plt.title('全国各地区分公司盈利情况') #添加大标题
    3 
    4 plt.barh(txt['地区'],txt['利润'])
    5 
    6 plt.xlabel('地区') #为x轴添加标题
    7 plt.ylabel('盈利情况') #y为y轴添加标题
    8 
    9 plt.show()

     

     1 txt_jaingxu = txt.sort_values(by='利润')
     2 
     3 plt.figure(figsize=(14,7)) #figsize是为我们创建一个指定的长和宽的画布
     4 plt.title('全国各地区分公司盈利情况',fontsize=18) #添加大标题
     5 
     6 plt.barh(txt_jaingxu['地区'],txt_jaingxu['利润'],color='turquoise')
     7 
     8 for x,y in enumerate(txt_jaingxu['利润'].values):
     9     plt.text(y,x,'%.2f' %y,fontsize=12,color='tomato')
    10 
    11 plt.xlabel('地区',fontsize=14,color='dimgray') #为x轴添加标题
    12 plt.ylabel('盈利情况',fontsize=14,color='dimgray') #y为y轴添加标题
    13 
    14 plt.xticks(color='dodgerblue',fontsize=12)
    15 plt.yticks(color='dodgerblue',fontsize=12)
    16 
    17 plt.show()

    4.饼图

    饼图是一种用来描述定性数据频数或百分比的图形。它通常以圆饼或椭圆饼的形式出现。 饼图的整个圆即代表一个总体的全部数据,圆中的一个扇形表示总体的一个类别,该扇面的大小由其占总体的比例决定, 且各个扇面对应比例之和必定为100%。 在实际应用中,它主要用来研究结构性问题,如:股权结构,投资结构,公司业务构成情况等。

     

    1 bt = pd.read_excel('可视化图表案例数据.xlsx',sheet_name='饼图')
    2 
    3 bt

     

     
    .dataframe tbody tr th {
        vertical-align: top;
    }
    
    .dataframe thead th {
        text-align: right;
    }

    </style>

     国内地区全年销售额占比
    0 中南地区 0.2134
    1 西南地区 0.1568
    2 华北地区 0.1473
    3 东北地区 0.0671
    4 华东地区 0.3029
    5 西北地区 0.1125

    </div>

     

    1 plt.figure(figsize=(12,6)) #figsize是为我们创建一个指定的长和宽的画布
    2 plt.title('国内各地区销售额占比情况') #添加大标题
    3 
    4 plt.pie(bt['全年销售额占比'])
    5 
    6 plt.show()

     

     1 plt.figure(figsize=(12,6)) #figsize是为我们创建一个指定的长和宽的画布
     2 
     3 
     4 
     5 plt.title('1-12月销售额占比情况',fontsize=18) #添加大标题
     6 
     7 plt.pie(bt['全年销售额占比'],
     8        explode=[0.03,0.03,0.03,0.03,0.05,0.03], #explode作用是控制各个扇面的间距,数值越大,间距越大
     9        wedgeprops={'linewidth':0.8,'edgecolor':'dimgray'}, #wedgeprops可以控制扇面的边框线设置
    10        colors=['hotpink','gold','tomato','lightskyblue','lightsalmon','mediumturquoise'], #color的作用是控制每个扇面的颜色
    11        textprops={'fontsize':12,'color':'black'},
    12        autopct='%.2f%%')
    13 
    14 plt.legend(bt['国内地区'],
    15           title='地区',
    16           fontsize=12,loc='center left',
    17           bbox_to_anchor=(1,0,0.5,1))
    18 
    19 plt.show()

    5.折线图

    折线图是由折现或曲线构成的图形,如股票的K线图、价格走势图、时间序列的趋势图等。 折线图一般由两个变量绘制,一个作为分析的变量,即下图中线所代表的含义; 另一个变量通常是定性变量或时间变量,作为分类或参考变量,用以观察分析变量的变动情况。

    折线图还可以同时考察多个变量的变动情况,并从中找出数据之间的关系。

    1 zxt = pd.read_excel('可视化图表案例数据.xlsx',sheet_name='折线图')
    2 
    3 zxt.head()

     

     
    .dataframe tbody tr th {
        vertical-align: top;
    }
    
    .dataframe thead th {
        text-align: right;
    }

    </style>

     月份销售额
    0 1月 765.96297
    1 2月 676.39933
    2 3月 706.98851
    3 4月 807.01692
    4 5月 534.67874

    </div>

     

    1 plt.figure(figsize=(12,6)) #figsize是为我们创建一个指定的长和宽的画布
    2 plt.title('全年销售额变动情况') #添加大标题
    3 
    4 plt.plot(zxt['月份'],zxt['销售额'])
    5 
    6 plt.show()

     

     1 plt.figure(figsize=(14,7)) #figsize是为我们创建一个指定的长和宽的画布
     2 plt.title('全年销售额变动情况',fontsize=18) #添加大标题
     3 
     4 plt.plot(zxt['月份'],zxt['销售额'],label='销售额',color='tomato',
     5         marker='o',markersize=6,linestyle='--',linewidth=2)
     6 
     7 plt.xlabel('时间',fontsize=14,color='dimgray') #为x轴添加标题
     8 plt.ylabel('销售额',fontsize=14,color='dimgray') #y为y轴添加标题
     9 
    10 plt.xticks(color='dodgerblue',fontsize=12)
    11 plt.yticks(color='dodgerblue',fontsize=12)
    12 
    13 for x,y in enumerate(zxt['销售额'].values):
    14     plt.text(x-0.8,y,'%.2f' %y,fontsize=14,color='tomato')
    15 
    16 plt.legend()    
    17     
    18 plt.show()

    6.散点图

    散点图主要用于考察两个变量之间的关系,广泛应用于统计数据整理和建模过程中。 它的主要特点是分别用X轴和Y轴来代表其所反映的变量,然后把每个数据点按照X轴和Y轴所代表变量的值,进而将其绘制在二维坐标系中。

     

     1 x = np.random.randn(20,2)
     2 y = x + x**2 + 1
     3 plt.figure(figsize=(12,6))
     4 
     5 plt.title('example') #添加大标题
     6 
     7 plt.scatter(x,y,s=24,color='orange',marker='.',label='point')
     8 
     9 plt.legend()
    10 
    11 plt.show()

     

     

     1 aa = np.random.randn(30)
     2 bb = np.random.randn(30)
     3 
     4 yanse = np.random.randn(30)
     5 plt.figure(figsize=(12,6))
     6 
     7 plt.title('example') #添加大标题
     8 
     9 plt.scatter(aa,bb,s=600*np.pi*(np.random.randn(30)**2),c=yanse,alpha=0.8)
    10 
    11 plt.show()

     

    小石小石摩西摩西的学习笔记,欢迎提问,欢迎指正!!!
  • 相关阅读:
    linq to entity group by 时间
    Entity Framework Core for Console
    EF Core 多个DbContext迁移命令
    .net for TCP服务端 && 客户端
    创建Windows Service
    EF Code First 快速创建
    在Docker中创建Mongo容器的后续设置
    Docker入门
    Python之collections.defaultdict
    Hough transform(霍夫变换)
  • 原文地址:https://www.cnblogs.com/shijingwen/p/13700567.html
Copyright © 2011-2022 走看看