zoukankan      html  css  js  c++  java
  • Python Matplotlib练习

    Python Matplotlib练习

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt 
    

    (1)画出(y=x^{2}+2x+1)在区间[-5,3]的函数图像。

    x = np.linspace(-5,3)
    y = x**2+2*x+1
    plt.plot(x,y)
    plt.show()
    


    png

    (2)在同一张图中创建两个子图,分别画出sinx和cosx在[-3.14,3.14]上的函数图像。设置线条宽度为2.5.

    x1 = np.linspace(-np.pi,np.pi)
    y1 = np.sin(x1)
    y2 = np.cos(x1)
    
    plt.subplot(211)
    plt.plot(x1,y1,linewidth=2.5)
    plt.ylabel('y1')
    
    plt.subplot(212)
    plt.plot(x1,y2,linewidth=2.5)
    plt.xlabel('x1')
    plt.ylabel('y2')
    plt.show()
    


    png

    (3)读取上次作业保存的酒店数据,画出每个地区酒店数量的柱状图,柱状颜色为红色

    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False
    
    df = pd.read_excel('酒店数据2.xlsx')
    
    data = df['地区'].value_counts()
    x = data.index
    y = data.values
    plt.figure(figsize=(12,6))
    plt.bar(x,y,color='r')
    plt.tick_params(labelsize=13)
    plt.xticks(rotation=90)
    plt.show()
    


    png

    (4)画出每个价格等级酒店数量的柱状图。

    data1 = df['等级'].value_counts()
    x = data1.index
    y = data1.values
    
    plt.figure(figsize=(10,5))
    plt.title('价格等级数量')
    plt.bar(x,y,linewidth=15)
    plt.tick_params(labelsize=13)
    plt.ylim(0, 250)
    plt.grid(axis='y')
    for a,b,in zip(x,y):
        plt.text(a,b,b,ha='center',va='bottom',fontsize=12)
    plt.show()
    


    png

    (5)画出各个价格等级占比的饼图。

    y1 =y/sum(y)
    plt.figure(figsize=(8,8))
    plt.pie(y1,labels=x,autopct='%.1f %%',textprops = {'fontsize':16})
    plt.show()
    


    png

    (6)画出酒店评分的直方图。

    plt.figure(figsize=(8,8))
    plt.hist(df['评分'],bins=len(df['评分'].unique()))
    plt.show()
    


    png

    (7)画出每个热门等级酒店评分均值的柱状图。(按照评分均值从小到大排序。)

    data2 = df['评分'].groupby(df['等级']).mean()
    data2 = data2[::-1]
    x = data2.index
    y = data2.values
    plt.figure(figsize=(8,6))
    plt.title('每个热门等级酒店评分均值')
    plt.tick_params(labelsize=13)
    for a,b,in zip(x,y):
        plt.text(a,b+0.05,b,ha='center',va='bottom',fontsize=13)
    plt.bar(x,y)
    plt.show()
    


    png

    (8)根据评分和价格信息,绘制散点图。

    x = df['评分'].values
    y = df['价格'].values
    plt.scatter(x,y)
    plt.title('评分价格散点图')
    plt.xlabel('评分')
    plt.ylabel('价格')
    plt.show()
    


    png

    (9)画出油尖旺地区,评分的箱线图。

    data = df[df.地区=='油尖旺']['评分']
    plt.boxplot(data,whis=2)
    plt.show()
    


    png

    (10)选出平均价格前5的地区,画出这些地区的评分的箱线图。

    data1 = df['价格'].groupby(df['地区']).mean()
    data1 = data1.sort_values()[-5:]
    x1 = df[df.地区==data1.index[0]]['评分']
    x2 = df[df.地区==data1.index[1]]['评分']
    x3 = df[df.地区==data1.index[2]]['评分']
    x4 = df[df.地区==data1.index[3]]['评分']
    x5 = df[df.地区==data1.index[4]]['评分']
    
    plt.title('平均价格前五地区的评分',fontsize=18)
    plt.xlabel('地区',fontsize=16)
    plt.ylabel('评分',fontsize=16)
    plt.boxplot([x1,x2,x3,x4,x5],labels=[data1.index[0],data1.index[1],data1.index[2],data1.index[3],data1.index[4]],
               whis=1,flierprops={'marker':'o','markerfacecolor':'r','color':'k'},
               patch_artist=True,boxprops={'color':'k','facecolor':'#9999ff'})
    plt.show()
    


    png

    (11)将题目9,10的图像旋转90度。

    data = df[df.地区=='油尖旺']['评分']
    plt.boxplot(data,whis=2,vert=False)
    plt.show()
    


    png

    plt.boxplot([x1,x2,x3,x4,x5],labels=[data1.index[0],data1.index[1],data1.index[2],data1.index[3],data1.index[4]],
               whis=1,flierprops={'marker':'o','markerfacecolor':'r','color':'k'},
               patch_artist=True,boxprops={'color':'k','facecolor':'#9999ff'},vert=False)
    plt.show()
    


    png

    (12)绘制一个评分,评分人数和价格之间的相关系数图

    import seaborn as sns
    
    data2 = df[['评分','评分人数','价格']]
    corr = abs(data2.corr())
    
    sns.heatmap(corr,vmax=1,vmin=0,annot=True,annot_kws={'size':13,'weight':'bold'},linewidth=0.05)
    
    plt.show()
    


    png

    
    
    作者:王陸

    -------------------------------------------

    个性签名:罔谈彼短,靡持己长。做一个谦逊爱学的人!

    本站使用「署名 4.0 国际」创作共享协议,转载请在文章明显位置注明作者及出处。鉴于博主处于考研复习期间,有什么问题请在评论区中提出,博主尽可能当天回复,加微信好友请注明原因

  • 相关阅读:
    JVM致命错误日志(hs_err_pid.log)解读
    ant+proguard签名打包 .jar
    ProGuard之——代码混淆
    Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密
    利用Ant与Proguard混淆
    Ant在Java项目中的使用(一眼就看会)
    Native2Ascii文件转换 -- 待完善
    scp 的时候提示WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
    logback与log4j比较
    腾讯、百度、阿里面试经验—(3)阿里面经
  • 原文地址:https://www.cnblogs.com/wkfvawl/p/15069176.html
Copyright © 2011-2022 走看看