精华内容
下载资源
问答
  • //2019.07.23 1、箱形图,又称为盒式图,一般可以很好地反映出数据分布的特征,也可以进行多项数据之间分布特征的比较,...2、双轴图的绘制代码:import numpy as npimport matplotlib.pyplot as pltimport pandas...

    //2019.07.23

    1、箱形图,又称为盒式图一般可以很好地反映出数据分布的特征,也可以进行多项数据之间分布特征的比较,它主要包含五个基础数据:中位数,两个上下分位数以及上下边缘线数据

    其中的一些参数具体含义及其计算过程如下:


    2、双轴图的绘制代码:
    import numpy as np
    import matplotlib.pyplot as plt
    import pandas as pd
    plt.rcParams["font.sans-serif"]=["SimHei"] #输出图像的标题可以为中文正常输出
    plt.rcParams["axes.unicode_minus"]=False #可以正常输出图线里的负号
    import warnings
    warnings.filterwarnings("ignore") #忽略相应的警告信息
    df=pd.read_excel("D:/Byrbt2018/Study/Python数据分析课程+练习+讲解/Python数据分析课程+练习+讲解/作业/作业4/作业4/酒店数据1.xlsx")#导入w我们的表格数据文件
    print(df)
    print(df.index)
    print(df.columns)
    d=df[:5]
    print(d)
    2、#双轴图的绘制.twinx()
    import matplotlib.mlab as mlab
    fig=plt.figure(figsize=(10,8))
    ax1=fig.add_subplot(1,1,1)
    n,bins,patches=ax1.hist(df["评分"],bins=100,color="m")

    ax1.set_ylabel("电影数量",fontsize=15)
    ax1.set_xlabel("评分",fontsize=15)
    ax1.set_title("频率分布直方图",fontsize=20)

    y=mlab.normpdf(bins,df["评分"].mean(),df["评分"].std()) #生成正态分布函数
    ax2=ax1.twinx() #定义新的双轴图函数
    ax2.plot(bins,y,"b--")
    ax2.set_ylabel("概率分布",fontsize=15)

    3、#散点图的绘制plt.scatter(x,y)绘制散点图
    x=df["评分人数"][::10]
    y=df["评分"][::10] #隔10个点进行选取数据点
    plt.figure(2)
    plt.scatter(x,y,color="r",marker="p") #散点图函数图像输出
    plt.xlabel("评分",fontsize=15)
    plt.ylabel("评分人数",fontsize=15)
    plt.title("酒店评分与人数散点图",fontsize=20)
    4、#箱线图的绘制
    d=df[df.类型=="商务出行"]["评分"]
    print(d)
    plt.figure(4)
    plt.boxplot(d,whis=1.5,flierprops={"marker":"o","markerfacecolor":"r","color":"g"},patch_artist=True,boxprops={"color":"k","facecolor":"g"})

    #箱线图的格式设置和调整
    plt.title("商务出行酒店的评分数据分布",fontsize=17)
    #多组数据的箱线图
    d1=df[df.类型=="浪漫情侣"]["评分"]
    d2=df[df.类型=="地铁周边"]["评分"]
    d3=df[df.类型=="休闲度假"]["评分"]
    d4=df[df.类型=="海滨风光"]["评分"]
    d5=df[df.类型=="交通方便"]["评分"]
    d6=df[df.类型=="商务出行"]["评分"]
    plt.figure(5)
    plt.boxplot([d1,d2,d3,d4,d5,d6],labels=["浪漫情侣","地铁周边","休闲度假","海滨风光","交通方便","商务出行"],whis=1.5,flierprops={"marker":"o","markerfacecolor":"r","color":"g"},patch_artist=True,boxprops={"color":"k","facecolor":"g"}
    ,vert=True) #多组数据分布特征比较,vert决定了整体图像的横向与纵向
    #坐标轴的编辑与改变
    ax=plt.gca() #坐标轴的编辑与改变
    ax.patch.set_facecolor("white") #设置坐标轴的背景颜色
    ax.patch.set_alpha(0.3) #设置配色和透明度
    plt.title("不同类型酒店的评分箱线图",fontsize=20)
    plt.xlabel("酒店类型",fontsize=15)
    plt.ylabel("评分大小",fontsize=15)
    #相关系数矩阵图
    df1=df[["评分","评分人数"]]
    df1["排序"]=np.random.randint(1,100,396)
    print(df1)
    r1=pd.scatter_matrix(df1,diagonal="kde",color="k",alpha=0.3,figsize=(10,10))
    #对于多个数据减的散点图绘制函数参数设置,diagonal表示对角线图像kde/hist(数据密度图或者直方图选择)

    5、#相关系数热力图
    import seaborn as sns
    corr=df1.corr()
    corr=abs(corr)
    ax=plt.figure(figsize=(10,8))
    ax=sns.heatmap(corr,vmax=1,vmin=0,annot=True,annot_kws={"size":13,"weight":"bold"},linewidth=0.05)

    plt.xticks(fontsize=15)
    plt.yticks(fontsize=15)
    plt.xlabel("数据名称",fontsize=15)
    plt.ylabel("数据名称",fontsize=15)
    plt.title("不同数据间相关系数矩阵图",fontsize=20)
    plt.show()

    整体运行代码如下:

    import numpy as np
    import matplotlib.pyplot as plt
    import pandas as pd
    plt.rcParams["font.sans-serif"]=["SimHei"] #输出图像的标题可以为中文正常输出
    plt.rcParams["axes.unicode_minus"]=False #可以正常输出图线里的负号
    import warnings
    warnings.filterwarnings("ignore") #忽略相应的警告信息
    df=pd.read_excel("D:/Byrbt2018/Study/Python数据分析课程+练习+讲解/Python数据分析课程+练习+讲解/作业/作业4/作业4/酒店数据1.xlsx")#导入w我们的表格数据文件
    print(df)
    print(df.index)
    print(df.columns)
    d=df[:5]
    print(d)
    #双轴图的绘制.twinx()
    import matplotlib.mlab as mlab
    fig=plt.figure(figsize=(10,8))
    ax1=fig.add_subplot(1,1,1)
    n,bins,patches=ax1.hist(df["评分"],bins=100,color="m")

    ax1.set_ylabel("电影数量",fontsize=15)
    ax1.set_xlabel("评分",fontsize=15)
    ax1.set_title("频率分布直方图",fontsize=20)

    y=mlab.normpdf(bins,df["评分"].mean(),df["评分"].std()) #生成正态分布函数
    ax2=ax1.twinx() #定义新的双轴图函数
    ax2.plot(bins,y,"b--")
    ax2.set_ylabel("概率分布",fontsize=15)

    #散点图的绘制plt.scatter(x,y)绘制散点图
    x=df["评分人数"][::10]
    y=df["评分"][::10] #隔10个点进行选取数据点
    plt.figure(2)
    plt.scatter(x,y,color="r",marker="p") #散点图函数图像输出
    plt.xlabel("评分",fontsize=15)
    plt.ylabel("评分人数",fontsize=15)
    plt.title("酒店评分与人数散点图",fontsize=20)

    #箱线图的绘制
    d=df[df.类型=="商务出行"]["评分"]
    print(d)
    plt.figure(4)
    plt.boxplot(d,whis=1.5,flierprops={"marker":"o","markerfacecolor":"r","color":"g"},patch_artist=True,boxprops={"color":"k","facecolor":"g"})
    #箱线图的格式设置和调整
    plt.title("商务出行酒店的评分数据分布",fontsize=17)
    #多组数据的箱线图
    d1=df[df.类型=="浪漫情侣"]["评分"]
    d2=df[df.类型=="地铁周边"]["评分"]
    d3=df[df.类型=="休闲度假"]["评分"]
    d4=df[df.类型=="海滨风光"]["评分"]
    d5=df[df.类型=="交通方便"]["评分"]
    d6=df[df.类型=="商务出行"]["评分"]
    plt.figure(5)
    plt.boxplot([d1,d2,d3,d4,d5,d6],labels=["浪漫情侣","地铁周边","休闲度假","海滨风光","交通方便","商务出行"],whis=1.5,flierprops={"marker":"o","markerfacecolor":"r","color":"g"},patch_artist=True,boxprops={"color":"k","facecolor":"g"}
    ,vert=True) #多组数据分布特征比较,vert决定了整体图像的横向与纵向
    #坐标轴的编辑与改变
    ax=plt.gca() #坐标轴的编辑与改变
    ax.patch.set_facecolor("white") #设置坐标轴的背景颜色
    ax.patch.set_alpha(0.3) #设置配色和透明度
    plt.title("不同类型酒店的评分箱线图",fontsize=20)
    plt.xlabel("酒店类型",fontsize=15)
    plt.ylabel("评分大小",fontsize=15)
    #相关系数矩阵图
    df1=df[["评分","评分人数"]]
    df1["排序"]=np.random.randint(1,100,396)
    print(df1)
    r1=pd.scatter_matrix(df1,diagonal="kde",color="k",alpha=0.3,figsize=(10,10))
    #对于多个数据减的散点图绘制函数参数设置,diagonal表示对角线图像kde/hist

    #相关系数热力图
    import seaborn as sns
    corr=df1.corr()
    corr=abs(corr)
    ax=plt.figure(figsize=(10,8))
    ax=sns.heatmap(corr,vmax=1,vmin=0,annot=True,annot_kws={"size":13,"weight":"bold"},linewidth=0.05)
    plt.xticks(fontsize=15)
    plt.yticks(fontsize=15)
    plt.xlabel("数据名称",fontsize=15)
    plt.ylabel("数据名称",fontsize=15)
    plt.title("不同数据间相关系数矩阵图",fontsize=20)
    plt.show()
    输出结果如下:

     

    
    

     

    
    

    转载于:https://www.cnblogs.com/Yanjy-OnlyOne/p/11232627.html

    展开全文
  • //2019.07.231、箱形图,又称为盒式图,一般可以很好地反映出数据分布的特征,也可以进行多项数据之间分布...2、双轴图的绘制代码:import numpy as npimport matplotlib.pyplot as pltimport pandas as pdplt.rcP...

    //2019.07.23

    1、箱形图,又称为盒式图,一般可以很好地反映出数据分布的特征,也可以进行多项数据之间分布特征的比较,它主要包含五个基础数据:中位数,两个上下分位数以及上下边缘线数据

    其中的一些参数具体含义及其计算过程如下:

    2、双轴图的绘制代码:

    import numpy as np

    import matplotlib.pyplot as plt

    import pandas as pd

    plt.rcParams["font.sans-serif"]=["SimHei"] #输出图像的标题可以为中文正常输出

    plt.rcParams["axes.unicode_minus"]=False #可以正常输出图线里的负号

    import warnings

    warnings.filterwarnings("ignore") #忽略相应的警告信息

    df=pd.read_excel("D:/Byrbt2018/Study/Python数据分析课程+练习+讲解/Python数据分析课程+练习+讲解/作业/作业4/作业4/酒店数据1.xlsx")#导入w我们的表格数据文件

    print(df)

    print(df.index)

    print(df.columns)

    d=df[:5]

    print(d)

    2、#双轴图的绘制.twinx()

    import matplotlib.mlab as mlab

    fig=plt.figure(figsize=(10,8))

    ax1=fig.add_subplot(1,1,1)

    n,bins,patches=ax1.hist(df["评分"],bins=100,color="m")

    ax1.set_ylabel("电影数量",fontsize=15)

    ax1.set_xlabel("评分",fontsize=15)

    ax1.set_title("频率分布直方图",fontsize=20)

    y=mlab.normpdf(bins,df["评分"].mean(),df["评分"].std()) #生成正态分布函数

    ax2=ax1.twinx() #定义新的双轴图函数

    ax2.plot(bins,y,"b--")

    ax2.set_ylabel("概率分布",fontsize=15)

    3、#散点图的绘制plt.scatter(x,y)绘制散点图

    x=df["评分人数"][::10]

    y=df["评分"][::10] #隔10个点进行选取数据点

    plt.figure(2)

    plt.scatter(x,y,color="r",marker="p") #散点图函数图像输出

    plt.xlabel("评分",fontsize=15)

    plt.ylabel("评分人数",fontsize=15)

    plt.title("酒店评分与人数散点图",fontsize=20)

    4、#箱线图的绘制

    d=df[df.类型=="商务出行"]["评分"]

    print(d)

    plt.figure(4)

    plt.boxplot(d,whis=1.5,flierprops={"marker":"o","markerfacecolor":"r","color":"g"},patch_artist=True,boxprops={"color":"k","facecolor":"g"})

    #箱线图的格式设置和调整

    plt.title("商务出行酒店的评分数据分布",fontsize=17)

    #多组数据的箱线图

    d1=df[df.类型=="浪漫情侣"]["评分"]

    d2=df[df.类型=="地铁周边"]["评分"]

    d3=df[df.类型=="休闲度假"]["评分"]

    d4=df[df.类型=="海滨风光"]["评分"]

    d5=df[df.类型=="交通方便"]["评分"]

    d6=df[df.类型=="商务出行"]["评分"]

    plt.figure(5)

    plt.boxplot([d1,d2,d3,d4,d5,d6],labels=["浪漫情侣","地铁周边","休闲度假","海滨风光","交通方便","商务出行"],whis=1.5,flierprops={"marker":"o","markerfacecolor":"r","color":"g"},patch_artist=True,boxprops={"color":"k","facecolor":"g"}

    ,vert=True) #多组数据分布特征比较,vert决定了整体图像的横向与纵向

    #坐标轴的编辑与改变

    ax=plt.gca() #坐标轴的编辑与改变

    ax.patch.set_facecolor("white") #设置坐标轴的背景颜色

    ax.patch.set_alpha(0.3) #设置配色和透明度

    plt.title("不同类型酒店的评分箱线图",fontsize=20)

    plt.xlabel("酒店类型",fontsize=15)

    plt.ylabel("评分大小",fontsize=15)

    #相关系数矩阵图

    df1=df[["评分","评分人数"]]

    df1["排序"]=np.random.randint(1,100,396)

    print(df1)

    r1=pd.scatter_matrix(df1,diagonal="kde",color="k",alpha=0.3,figsize=(10,10))

    #对于多个数据减的散点图绘制函数参数设置,diagonal表示对角线图像kde/hist(数据密度图或者直方图选择)

    5、#相关系数热力图

    import seaborn as sns

    corr=df1.corr()

    corr=abs(corr)

    ax=plt.figure(figsize=(10,8))

    ax=sns.heatmap(corr,vmax=1,vmin=0,annot=True,annot_kws={"size":13,"weight":"bold"},linewidth=0.05)

    plt.xticks(fontsize=15)

    plt.yticks(fontsize=15)

    plt.xlabel("数据名称",fontsize=15)

    plt.ylabel("数据名称",fontsize=15)

    plt.title("不同数据间相关系数矩阵图",fontsize=20)

    plt.show()

    整体运行代码如下:

    import numpy as np

    import matplotlib.pyplot as plt

    import pandas as pd

    plt.rcParams["font.sans-serif"]=["SimHei"] #输出图像的标题可以为中文正常输出

    plt.rcParams["axes.unicode_minus"]=False #可以正常输出图线里的负号

    import warnings

    warnings.filterwarnings("ignore") #忽略相应的警告信息

    df=pd.read_excel("D:/Byrbt2018/Study/Python数据分析课程+练习+讲解/Python数据分析课程+练习+讲解/作业/作业4/作业4/酒店数据1.xlsx")#导入w我们的表格数据文件

    print(df)

    print(df.index)

    print(df.columns)

    d=df[:5]

    print(d)

    #双轴图的绘制.twinx()

    import matplotlib.mlab as mlab

    fig=plt.figure(figsize=(10,8))

    ax1=fig.add_subplot(1,1,1)

    n,bins,patches=ax1.hist(df["评分"],bins=100,color="m")

    ax1.set_ylabel("电影数量",fontsize=15)

    ax1.set_xlabel("评分",fontsize=15)

    ax1.set_title("频率分布直方图",fontsize=20)

    y=mlab.normpdf(bins,df["评分"].mean(),df["评分"].std()) #生成正态分布函数

    ax2=ax1.twinx() #定义新的双轴图函数

    ax2.plot(bins,y,"b--")

    ax2.set_ylabel("概率分布",fontsize=15)

    #散点图的绘制plt.scatter(x,y)绘制散点图

    x=df["评分人数"][::10]

    y=df["评分"][::10] #隔10个点进行选取数据点

    plt.figure(2)

    plt.scatter(x,y,color="r",marker="p") #散点图函数图像输出

    plt.xlabel("评分",fontsize=15)

    plt.ylabel("评分人数",fontsize=15)

    plt.title("酒店评分与人数散点图",fontsize=20)

    #箱线图的绘制

    d=df[df.类型=="商务出行"]["评分"]

    print(d)

    plt.figure(4)

    plt.boxplot(d,whis=1.5,flierprops={"marker":"o","markerfacecolor":"r","color":"g"},patch_artist=True,boxprops={"color":"k","facecolor":"g"})

    #箱线图的格式设置和调整

    plt.title("商务出行酒店的评分数据分布",fontsize=17)

    #多组数据的箱线图

    d1=df[df.类型=="浪漫情侣"]["评分"]

    d2=df[df.类型=="地铁周边"]["评分"]

    d3=df[df.类型=="休闲度假"]["评分"]

    d4=df[df.类型=="海滨风光"]["评分"]

    d5=df[df.类型=="交通方便"]["评分"]

    d6=df[df.类型=="商务出行"]["评分"]

    plt.figure(5)

    plt.boxplot([d1,d2,d3,d4,d5,d6],labels=["浪漫情侣","地铁周边","休闲度假","海滨风光","交通方便","商务出行"],whis=1.5,flierprops={"marker":"o","markerfacecolor":"r","color":"g"},patch_artist=True,boxprops={"color":"k","facecolor":"g"}

    ,vert=True) #多组数据分布特征比较,vert决定了整体图像的横向与纵向

    #坐标轴的编辑与改变

    ax=plt.gca() #坐标轴的编辑与改变

    ax.patch.set_facecolor("white") #设置坐标轴的背景颜色

    ax.patch.set_alpha(0.3) #设置配色和透明度

    plt.title("不同类型酒店的评分箱线图",fontsize=20)

    plt.xlabel("酒店类型",fontsize=15)

    plt.ylabel("评分大小",fontsize=15)

    #相关系数矩阵图

    df1=df[["评分","评分人数"]]

    df1["排序"]=np.random.randint(1,100,396)

    print(df1)

    r1=pd.scatter_matrix(df1,diagonal="kde",color="k",alpha=0.3,figsize=(10,10))

    #对于多个数据减的散点图绘制函数参数设置,diagonal表示对角线图像kde/hist

    #相关系数热力图

    import seaborn as sns

    corr=df1.corr()

    corr=abs(corr)

    ax=plt.figure(figsize=(10,8))

    ax=sns.heatmap(corr,vmax=1,vmin=0,annot=True,annot_kws={"size":13,"weight":"bold"},linewidth=0.05)

    plt.xticks(fontsize=15)

    plt.yticks(fontsize=15)

    plt.xlabel("数据名称",fontsize=15)

    plt.ylabel("数据名称",fontsize=15)

    plt.title("不同数据间相关系数矩阵图",fontsize=20)

    plt.show()

    输出结果如下:

    展开全文
  • matplotlib双轴折线

    千次阅读 2020-06-03 16:37:32
    matplotlib双轴折线 # -*- coding:utf-8 -*- ''' 以下程序修改文件路径可直接在导出的RTM报文上运行,无需在excel中进行预处理 import pandas as pd from pandas import DataFrame import matplotlib.pyplot as...

    matplotlib画双轴折线图

    绘制次坐标轴

    ax1=plt.gca()
    ax1.set_ylabel(u"单体电池电压(V)")
    ax2=ax1.twinx()                     #次坐标轴
    ax2.set_ylim(-0.5, 1.5)              #根据需要设置次坐标轴的范围
    ax2.plot(df1['采集时间'],voltage_split['charge_state'],'r')  #绘制对应次坐标轴的曲线
    

    原始数据(截取了前5条),其中单体电池电压-1中有96个电压值,最后一个值带单位“V”
    在这里插入图片描述

    # -*- coding:utf-8 -*-
    
    
    以下程序修改文件路径可直接在导出的RTM报文上运行,无需在excel中进行预处理
    import pandas as pd
    from pandas import DataFrame
    import matplotlib.pyplot as plt
    from matplotlib.pyplot import MultipleLocator
    
    plt.rcdefaults()
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体
    plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
    
    
    df1=pd.read_excel("D:/车辆历史状态监控数据0504至0509.xlsx",sheet_name='车况历史数据')
    
    
    '''96个单体电池电压跟时间的曲线'''
    voltage_split=df1['单体电池电压-1'].str.split(',',expand=True)     #将单体电池电压字段分成96列
    voltage_split[95]=voltage_split[95].str.split('V',expand=True)[0]    #去掉最后一列电压的单位“V”
    voltage_split=voltage_split.astype(float)
    voltage_split['极大值']=voltage_split.max(axis=1)  #计算每行电压的最大值
    voltage_split['charge_state']=df1['充电状态'].apply(lambda x: 0 if x=='NO_CHARGING' else 1)  #NO_CHARGING记为0,其他记为1,画出充电状态图用于理解电压变化曲线
    
    for i in range(0,96):
        plt.plot(df1['采集时间'],voltage_split[i])    #X轴为采集时间,Y轴为电压,画96条线
    plt.plot(df1['采集时间'],voltage_split['极大值'],'ro',ms=1)  #每个时间的极大值用‘bo’表示画蓝点
    ax1=plt.gca()
    ax1.set_ylabel(u"电压(V)")
    ax2=ax1.twinx()                     #次坐标轴,用于画充电状态折线
    ax2.set_ylim(-0.5, 1.5)
    ax2.plot(df1['采集时间'],voltage_split['charge_state'],'y')
    ax2.set_ylabel(u"充电状态(0表示不在充电,1表示充电中)")
    plt.plot(df1['采集时间'],voltage_split['极大值'],'ro',ms=2)  #我也不知道为什么要画两次,但注释掉这条的话下面的图例就无法显示单体电池电压
    plt.legend(['充电状态','电压'])
    plt.show()
    

    运行结果:
    在这里插入图片描述

    展开全文
  • matplotlib绘图

    2019-03-04 06:59:41
    绘制双轴图 import numpy as np import matplotlib.pyplot as plt y = np.random.standard_normal([20, 2]).cumsum(axis=0) 绘制成双轴图 plt.figure(figsize=(7, 4)) fig1, ax1 = plt.subplots() plt.plot(y[:, 0.....

    matplotlib绘图

    绘制双轴图

    import numpy as np
    import matplotlib.pyplot as plt

    y = np.random.standard_normal([20, 2]).cumsum(axis=0)
    plt.figure(figsize=(7, 4))
    fig1, ax1 = plt.subplots()
    plt.plot(y[:, 0]*100, lw=1.5, c=‘b’, label=‘1st’)
    plt.legend(loc=0)
    plt.plot(y[:, 0]*100,‘ro’)
    plt.grid(True)
    plt.axis(‘tight’)
    plt.ylim(y[:, 0].min()*100, y[:, 0].max()*100)
    plt.xlabel(‘index’)
    plt.ylabel(‘value1’)
    plt.title(‘2axis_plot’)

    ax2 = ax1.twinx()
    plt.plot(y[:, 1], lw=1.5, c='y', label='2nd')
    plt.legend(loc=0)
    plt.plot(y[:, 1],'ro')
    plt.grid(True)
    plt.axis('tight')
    plt.ylim(y[:, 1].min(), y[:, 1].max())
    plt.ylabel('value2')
    plt.show()
    

    绘制子图

    import numpy as np
    import matplotlib.pyplot as plt
    
    y = np.random.standard_normal([20, 2]).cumsum(axis=0)
    plt.figure(figsize=(7, 4))
    plt.subplot(211)  # 1行两列布局的第一个图
    plt.plot(y[:, 0]*100, lw=1.5, c='b', label='1st')  # 折线图
    plt.legend(loc=0)
    plt.plot(y[:, 0]*100,'ro')
    plt.axis('tight')
    
    plt.grid(True)
    plt.ylim(y[:, 0].min()*100, y[:, 0].max()*100)
    plt.xlabel('index')
    plt.ylabel('value1')
    plt.title('2sub_plot')
    
    plt.subplot(212)  # 1行两列的子图中的第二个子图
    plt.bar(np.arange(len(y)), y[:, 1], width=0.5, color='g', label='2nd')  # 柱状图
    plt.legend(loc=0)
    plt.axis('tight')
    plt.grid(True)
    plt.ylim(y[:, 1].min(), y[:, 1].max())
    plt.ylabel('value2')
    plt.show()
    

    绘制热力散点图

    import matplotlib.pyplot as plt
    import numpy as np
    
    
    y = np.random.standard_normal((1000, 2))
    c = np.random.randint(0, 5, len(y))
    plt.scatter(y[:, 0], y[:, 1], c=c, marker='o')
    plt.colorbar()
     plt.xlabel('x')
    plt.ylabel('y')
    plt.title('hot_scater')
    plt.show()
    

    直方图

    import matplotlib.pyplot as plt
    import numpy as np

    y = np.random.standard_normal((1000, 2))

    直方图

    plt.hist(y,label=['1st', '2nd'], color=['r', 'g'], bins=25, stacked=False)
    plt.grid(True)
    plt.legend(loc=0)
    plt.title('histogram')
    plt.show()
    

    曲边梯形积分图

    import numpy as np
    import matplotlib.pyplot as plt
    from matplotlib.patches import Polygon
    
    
    def func(x):
        return 0.5*np.exp(x) + 1
    
    a, b = 0.5, 1.5
    x = np.linspace(0, 2)
    y = func(x)
    
    fig, ax = plt.subplots(figsize=(7, 4))
    plt.plot(x, y, 'b', linewidth=2)
    plt.ylim(ymin=0)
    Ix = np.linspace(a, b)
    Iy = func(Ix)
    verts = [(a, 0)] + list(zip(Ix, Iy)) + [(b, 0)]
    poly = Polygon(verts, facecolor='0.7', edgecolor='0.5')
    ax.add_patch(poly)
    plt.text(0.5*(a+b), 1, r'$\int_a^b 0.5exp(x)+1 \mathrm{d}x$', fontsize=20, horizontalalignment='center')
    plt.figtext(0.9, 0.075, '$x$')
    plt.figtext(0.075, 0.9, '$f(x)$')
    ax.set_xticks((a,b))
    plt.show()
    

    K线图

     import datetime
    import numpy as np
    import pandas.io.data as web
    import matplotlib.pyplot as plt
    import matplotlib.finance as mpf
       quotes = web.DataReader(
           'GOOG', data_source='google', start='05/01/2015', end='06/01/2015')
        
        fig, ax = plt.subplots(figsize=(8, 5))
        fig.subplots_adjust(bottom=0.2)
        mpf.candlestick_ohlc(ax, quotes, width=0.6, colorup='r', colordown='g')
        plt.grid(True)
        ax.xaxis_date()
        ax.autoscale_view()
        plt.setp(plt.gca().get_xticklabels(), rotation=30)  # x坐标轴刻度旋转30度
        plt.show()
    

    竹节图

       import datetime
    import numpy as np
    import pandas.io.data as web
    import matplotlib.pyplot as plt
    import matplotlib.finance as mpf
       quotes = web.DataReader(
           'GOOG', data_source='google', start='05/01/2015', end='06/01/2015')
        fig, ax = plt.subplots(figsize=(8, 5))
        fig.subplots_adjust(bottom=0.2)
        mpf.plot_day_summary_ohlc(ax, quotes, colorup='r', colordown='g')
        plt.grid(True)
        ax.xaxis_date()
        ax.autoscale_view()
        plt._setp(plt.gca().get_xticklabels(), rotation=30)
        plt.show()
    

    K线成交量图

     import datetime
    import numpy as np
    import pandas.io.data as web
    import matplotlib.pyplot as plt
    import matplotlib.finance as mpf
    quotes = web.DataReader(
           'GOOG', data_source='google', start='05/01/2015', end='06/01/2015')
    fig, (ax1, ax2) = plt.subplots(2, sharex=True, figsize=(8, 6))
    mpf.candlestick_ohlc(ax1, quotes, width=0.6, colorup='r', colordown='g')  # k线图
    ax1.set_title('inc')
    ax1.set_ylabel('index level')  # 指数水平
    ax1.grid(True)
    ax1.xaxis_date()
    
    plt.bar(quotes[:, 0]-0.25, quotes[:, 5], width=0.5)
    ax2.set_ylabel('volumn')
    ax2.grid(True)
    ax2.autoscal_view()
    plt._setp(plt.gca().get_xticklabels(), rotation=30)
    plt.show()
    

    模拟期权隐含波动率曲面

    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    
    strike = np.linspace(50, 150, 24)
    ttm = np.linspace(0.5, 2.5, 24)
    strike, ttm = np.meshgrid(strike, ttm)
    iv = (strike-100)**2/(100*strike)/ttm
    
    fig = plt.figure(figsize=(9, 6))
    ax = fig.gca(projection='3d')
    surf = ax.plot_surface(
        strike, ttm, iv, rstride=2, cmap=plt.cm.coolwarm, linewidth=0.5, antialiased=True)
    ax.set_xlabel('strike')
    ax.set_ylabel('time_to_aturity')
    ax.set_zlabel('implied_volatility')
    fig.colorbar(surf, shrink=0.5, aspect=10)
    plt.show()
    

    模拟期权隐含波动率3D散点图

    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    
    strike = np.linspace(50, 150, 24)
    ttm = np.linspace(0.5, 2.5, 24)
    strike, ttm = np.meshgrid(strike, ttm)
    iv = (strike-100)**2/(100*strike)/ttm
    
    fig = plt.figure(figsize=(9, 6))
    ax = fig.add_subplot(111, projection='3d')
    ax.view_init(30, 60)
    ax.scatter(strike, ttm, iv, zdir='z', s=25, c='b', marker='^')
    ax.set_xlabel('strike')
    ax.set_ylabel('time_to_aturity')
    ax.set_zlabel('implied_volatility')
    plt.show()
    
    展开全文
  • 从零开始学matplotlib画图(六): 双轴图

    千次阅读 2018-10-22 20:09:24
    如果想要简单地实现这样的需求,我们完全可以将两个指标在两张中展示。 然而我们常常需要将两个极为相关或者同样重要的指标放在一起来观察,比如说,有一家内容类公司,需要观察过去一年产品日活以及内容整体点击...
  • 重点:设置双轴显示为不同颜色,主Y轴与柱状同一颜色;辅助Y轴与折线同一颜色。X轴中文标签竖排显示,这个竖排可不是旋转90度的那种哦。 先看看效果吧 代码: import numpy as np import pandas as pd #导入...
  • 双轴图的画法 add_subplot函数解释: Python Matplotlib add_subplot 和 subplots_adjust详解及代码详细说明 配图片说明 from scipy.stats import norm import matplotlib.mlab as mlab #生成正态概率密度函数 fig=...

空空如也

空空如也

1 2 3
收藏数 60
精华内容 24
关键字:

matplotlib双轴图