python樱花树画法图片 |
您所在的位置:网站首页 › 樱花树画法视频 › python樱花树画法图片 |
Hello,大家好,又开始来忽悠大家啦,这段时间决定给大家分享分享python可视化的内容,包括我们的matplotlib,Seaborn以及我们的pyecharts,这里面涉及到我们常用的图形,折线图啊,柱状图啊,散点图啊,箱形图啊,3D图啊等等~~ 今天就先给大家整理分享一下matplotlib吧~~ 在这里呢我们的环境使用的是anconda环境,可惜今天看见了不该看的内容~~ ![]() anconda自带了我们常用的数据分析包所以我们不必再去为环境准备而发愁,接下来我们看看具体的用法:~~~ 唉,还是来看张图吧~ ![]() 首先导入我们所需要的软件包: import numpy as npimport matplotlib.pyplot as plt%matplotlib inline #表示在行中显示图片,在命令行运行报错准备入门级数据 data = np.arange(0,1.1,0.01)data![]() ok,有数据啦我们来看看pyplot中的基础绘图语法: plt.plot(data,data**2) #添加y=x^2曲线plt.plot(data,data**4) #添加y=x^4曲线plt.title('lines') #添加标题plt.xlabel('x') #添加x轴的名称plt.ylabel('y') #添加y轴的名称plt.xlim((0,1)) #确定x轴范围plt.ylim((0,1)) #确定y轴范围plt.xticks([0,0.2,0.4,0.6,0.8,1]) #规定x轴刻度plt.yticks([0,0.2,0.4,0.6,0.8,1]) #规定y轴刻度线plt.legend(['y=x^2','y=x^4']) #添加线条标识plt.savefig('../tmp/y=x^2.png')plt.show()![]() 上面呢就是一些基础的语法啦,希望大家能够掌握,这张图呢里面包含了俩个线条,也就是说一张图里面可以设置多张,接下来我们瞅瞅子图的画法,也就是说画布里面套着画图,如下: 准备数据rad = np.arange(0,np.pi*2,0.01)rad![]() 太长了就省略啦~~~ 接下来开始画图~ #第一幅子图p1 = plt.figure(figsize=(8,6),dpi=80) #确定画布大小ax1 = p1.add_subplot(2,1,1) #创建一个俩行一列的子图,并开始绘制第一幅plt.title('lines') #添加标题plt.xlabel('x') #添加x轴的名称plt.ylabel('y') #添加y轴名称plt.xlim((0,1)) #确定x轴的范围plt.ylim((0,1)) #确定y轴的范围plt.xticks([0,0.2,0.4,0.6,0.8,1])plt.yticks([0,0.2,0.4,0.6,0.8,1]) #确定x,y轴的刻度plt.plot(rad,rad**2) #添加y=x^2的曲线plt.plot(rad,rad**4) #添加y=x^4的曲线plt.legend(['y=x^2','y=x^4'])#第二幅子图ax2=p1.add_subplot(2,1,2)plt.title('sin/cos')plt.xlabel('rad')plt.ylabel('value')plt.xlim((0,np.pi*2))plt.ylim((-1,1))plt.xticks([0,np.pi/2,np.pi,np.pi*1.5,np.pi*2])plt.yticks([-1,-0.5,0,0.5,1])plt.plot(rad,np.sin(rad)) #添加sin曲线plt.plot(rad,np.cos(rad))plt.legend(['sin','cos'])plt.savefig('../tmp/siccos.png')plt.show()![]() 上面我们就画了俩张图出来啦~ 在pyplot中呢我们可以设置它的rc参数,什么是rc参数呢: pyplot使用rc配置文件来自定义图形的各种默认属性,被称为rc配置或rc参数假设如下,我们做一张原始图先~ #原图x = np.linspace(0,4*np.pi) #生成x轴数据y = np.sin(x) #生成y周数据plt.plot(x,y,label="$sin(x)$") #绘制sin曲线图plt.title('sin')plt.savefig('../tmp/默认sin曲线.png')plt.show()![]() 然后修改rc参数后的图如下: plt.rcParams['lines.linestyle'] = '-.'plt.rcParams['lines.linewidth'] = 3plt.plot(x,y,label="$sin(x)$") #绘制三角函数plt.title('sin')plt.show()![]() 我们还可以调节字体得到rc参数,如下 #无法显示中文标题plt.plot(x,y,label="$sin(x)$")plt.title('sin函数')plt.show()![]() ![]() 了解完这些基础参数后,接下来我们就开始画图啦,在这里面呢有俩种最常用的图形,散点图和折线图,这俩种图形都能够分析不同数值型特征间的关系,散点图主要用于分析特征间的相关关系,折线图用于分析自变量特征和因变量特征之间的趋势关系 # 绘制散点图### 散点图可以提供俩类关键信息- 特征之间是否存在数值或者数量的关联趋势,关联趋势是线性的还是非线性的的- 如果某一个点或者某几个点偏离大多数点,则这些点就是离群值### pyplot中绘制散点图的函数是scatter,- plt.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs) - x,y接受array,表示x,y轴对应的数据,无默认 - s,接受数值或者一维的array,指定点的大小,默认为none - c,接受颜色或者一维的array,指定点的颜色,若传入一维array则表示每个点的颜色 - marker,接受特定的string,表示绘制的点的类型,默认为none - alpha,接受0~1的小数,表示点的透明度接下来我们利用网络数据和案例(电子书python数据分析)来给大家进行说明: plt.rcParams['font.sans-serif'] = 'SimHei' #设置中文显示plt.rcParams['axes.unicode_minus'] = Falsedata = np.load('../国民经济核算季度数据.npz')name = data['columns'] #提取其中的columns数组,视为数据的标签values = data['values'] #提取其中的values数组,视为数据的存在位置plt.figure(figsize=(8,7)) #设置画布plt.scatter(values[:,0],values[:,2],marker='o') #绘制散点图plt.xlabel('年份');plt.ylabel('生产总值(亿元)')plt.ylim((0,225000)) #设置y轴范围plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=65)plt.title('2000~2017年各季度国民生产总值散点图')plt.savefig('../tmp/2000~2017年个季度国民生产总值散点图.png')plt.show()![]() 绘制2000~2017年间各产业各季度国民生产总值的散点图 plt.figure(figsize=(8,7))plt.scatter(values[:,0],values[:,3],marker='o',c='red')plt.scatter(values[:,0],values[:,4],marker='D',c='blue')plt.scatter(values[:,0],values[:,5],marker='v',c='yellow')plt.xlabel('年份')plt.ylabel('生产总值(亿元)')plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)plt.title('2000~2017年各产业个季度国民生产总值散点图')plt.legend(['第一产业','第二产业','第三产业'],loc='best') #添加图例plt.savefig('../tmp/ge jidu.png')plt.show()![]() ![]() 接下来我们绘制点线图: plt.figure(figsize=(8,7))plt.plot(values[:,0],values[:,2],color='r',linestyle='--',marker='o') #绘制点线图plt.xlabel('年份')plt.ylabel('生产总值(亿元)')plt.ylim((0,225000))plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)plt.title('2000~2017年各产业个季度国民生产总值点线图')plt.show()![]() 绘制2000~2017年个季度生产总值的折线散点图 plt.figure(figsize=(8,7))plt.plot(values[:,0],values[:,3],'bs-', values[:,0],values[:,4],'ro-', values[:,0],values[:,5],'gH--') #绘制折线图plt.xlabel('年份')plt.ylabel('生产总值(亿元)')plt.legend(['第一产业','第二产业','第三产业'],loc='best') #添加图例plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)plt.title('2000~2017年各产业个季度国民生产总值折散点线图')plt.show()![]() 绘制2000~2017年个产业与行业的国民生产总值散点图 plt.rcParams['font.sans-serif'] = 'SimHei' #设置中文显示plt.rcParams['axes.unicode_minus'] = Falsedata = np.load('../国民经济核算季度数据.npz')name = data['columns']values = data['values']p = plt.figure(figsize=(12,12))#子图一ax1 = p.add_subplot(2,1,1)plt.scatter(values[:,0],values[:,3],marker='o',c='r')plt.scatter(values[:,0],values[:,4],marker='o',c='b')plt.scatter(values[:,0],values[:,5],marker='o',c='y')plt.ylabel('生产总值(亿元)')plt.title('2000~2017年个产业与行业个季度国民生产总值散点图')plt.legend(['第一产业','第二产业','第三产业'],loc='best') #添加图例#子图二ax2=p.add_subplot(2,1,2)plt.scatter(values[:,0],values[:,6],marker='o',c='r')plt.scatter(values[:,0],values[:,7],marker='D',c='b')plt.scatter(values[:,0],values[:,8],marker='v',c='y')plt.scatter(values[:,0],values[:,9],marker='8',c='g')plt.scatter(values[:,0],values[:,10],marker='p',c='c')plt.scatter(values[:,0],values[:,11],marker='+',c='m')plt.scatter(values[:,0],values[:,12],marker='s',c='k')plt.scatter(values[:,0],values[:,13],marker='*',c='purple')plt.scatter(values[:,0],values[:,14],marker='d',c='brown')plt.legend(['农业','工业','建筑','批发','交通','餐饮','金融','房地产','其他'])plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)plt.title('2000~2017年各产业与行业个季度国民生产总值散点子图')plt.show()![]() 绘制2000~2017年各产业与行业的国民生产总值折线图 p1=plt.figure(figsize=(8,7))#子图1ax3=p1.add_subplot(2,1,1)plt.plot(values[:,0],values[:,3],'b-', values[:,0],values[:,4],'r-', values[:,0],values[:,5],'g--')plt.ylabel('生产总值(亿元)')plt.title('2000~2017年个产业与行业个季度国民生产总值折线图')plt.legend(['第一产业','第二产业','第三产业'],loc='best') #添加图例# 子图2ax4=p1.add_subplot(2,1,2)plt.plot(values[:,0],values[:,6],'r-', values[:,0],values[:,7],'b-', values[:,0],values[:,8],'y--', values[:,0],values[:,9],'g:', values[:,0],values[:,10],'c-', values[:,0],values[:,11],'m-', values[:,0],values[:,12],'k-', values[:,0],values[:,13],'r:', values[:,0],values[:,14],'b-')plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)plt.ylabel('生产总值(亿元)')plt.xlabel('年份')plt.title('2000~2017年各产业与行业个季度国民生产总值散点子图')plt.show()![]() 接下来我们来看看其他关于数据分布与分散状态的图集: #直方图,饼图和箱线图是另外三种数据分析常用的图形,主要用于分析数据内部的分布状态和分散状态#直方图主要用于产看各分组数据的数量分布以及各个分组数据之间的数量比较# 饼图倾向于查看各分组数据在总数据中的占比# 箱线图的主要作用是发现整体数据的分布分散情况 # 绘制直方图- 直方图又称质量分布图,是统计报告图的一种,由一些列高度不等的纵向条纹或线段表示数据分布的情况- 一般用横轴表示数据所属类型,用纵轴表示数量或者占比- 用直方图可以比较直观的看出产品质量特性的分布状态,便于判断其总体质量分布情况### pyplot中绘制直方图的函数为bar,基础语法如下- plt.bar(left,height,width=0.8,bottom=None,hold=None,data=None,**kwargs) - left:接受array,表示x轴数据 - height:接受array,表示y轴数据的数量 - width:接受0~1之间的float,指定直方图的宽度。默认0.8 - color:接受特定的string或者包含颜色字符串的array表示直方图颜色 plt.rcParams['font.sans-serif'] = 'SimHei'plt.rcParams['axes.unicode_minus'] = Falsedata = np.load('../国民经济核算季度数据.npz')name = data['columns']values = data['values']lable = ['第一产业','第二产业','第三产业']plt.figure(figsize=(6,5))plt.bar(range(3),values[-1,3:6],width=0.79,) #绘制直方图plt.xlabel('产业')plt.ylabel('生产总值(亿元)')plt.xticks(range(3),lable)plt.title('2017年第一季度各产业国民生产总值直方图')plt.show()![]() 直方图的属性也有很多,希望大家去自行开发~ ## 绘制饼图- 饼图是将各项的大小与各项总和的比例显示在一张并中,以饼的大小去顶每一项的占比- 饼图可以反映出部分与部分,部分与整体之间的比例关系- 易于显示每组数据相对于总数的大小,而且显示方式直观#### 基本语法- plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False, rotatelabels=False, hold=None, data=None) - x:接受array,表示用于绘制饼图的数据 - explode:接受array,表示指定项距离饼图圆心为n个半径,默认为None - lablels:接受array,指定每一项的名称 - color:接受特定string或者包含颜色字符串的array,表示饼图颜色 - autopct:接受特定string,指定数值的显示方式,默认为NOne - pctdistance:接受float,指定每一项的名称lablels和距离圆心的半径,默认为1.1 - radius:接受float,表示饼图的半径。默认为1使用pie函数绘制2017年第一季度各产业国民总值的饼图 plt.figure(figsize=(6,6))label=['第一产业','第二产业','第三产业']explode = [0.01,0.01,0.01] #设置各项距离圆心n个半径plt.pie(values[-1,3:6],explode=explode,labels=lable,autopct='%1.1f%%')plt.title('2017年第一季度各产业国民生产总值饼图')plt.show()![]() 绘制2000~2017年各产业国民生产总值箱线图 label=['第一产业','第二产业','第三产业']gdp = (list(values[:,3]),list(values[:,4]),list(values[:,5]))plt.figure(figsize=(6,4))plt.boxplot(gdp,notch=True,labels=label,meanline=False)plt.title('2018年第一季度各产业国民生产总值箱线图')plt.show()![]() ![]() 绘制国民生产总值构成分布直方图 plt.rcParams['font.sans-serif'] = 'SimHei'plt.rcParams['axes.unicode_minus'] = Falsedata = np.load('../国民经济核算季度数据.npz')name = data['columns']values = data['values']label1=['第一产业','第二产业','第三产业']label2=['农业','工业','建筑','批发','交通','餐饮','金融','房地产','其他']p = plt.figure(figsize=(12,12))#子图1ax1=p.add_subplot(2,2,1)plt.bar(range(3),values[0,3:6],width=0.5)plt.xlabel('产业')plt.ylabel('生产总值(亿元)')plt.xticks(range(3),label1)plt.title('2000年第一季度国民生产总值产业构成分布直方图')#zitu 2ax2=p.add_subplot(2,2,2)plt.bar(range(3),values[-1,3:6],width=0.5)plt.xlabel('产业')plt.ylabel('生产总值(亿元)')plt.xticks(range(3),label1)plt.title('2017年第一季度国民生产总值产业构成分布直方图')#zitu 3ax3=p.add_subplot(2,2,3)plt.bar(range(9),values[0,6:],width=0.5)plt.xlabel('产业')plt.ylabel('生产总值(亿元)')plt.xticks(range(9),label2)plt.title('2000年第一季度国民生产总值产业构成分布直方图')#zitu 4ax4=p.add_subplot(2,2,4)plt.bar(range(9),values[-1,6:],width=0.5)plt.xlabel('产业')plt.ylabel('生产总值(亿元)')plt.xticks(range(9),label2)plt.title('2017年第一季度国民生产总值产业构成分布直方图')plt.show()![]() 绘制国民生产总值构成分布饼图 plt.rcParams['font.sans-serif'] = 'SimHei'plt.rcParams['axes.unicode_minus'] = Falsedata = np.load('../国民经济核算季度数据.npz')name = data['columns']values = data['values']label1=['第一产业','第二产业','第三产业']label2=['农业','工业','建筑','批发','交通','餐饮','金融','房地产','其他']explode1=[0.01,0.01,0.01]explode2=[0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01]p = plt.figure(figsize=(12,12))#子图1ax1=p.add_subplot(2,2,1)plt.pie(values[0,3:6],explode=explode1,labels=label1,autopct='%1.1f%%')plt.title('2000年第一季度国民生产总值产业构成分布饼图')#子图2ax1=p.add_subplot(2,2,2)plt.pie(values[-1,3:6],explode=explode1,labels=label1,autopct='%1.1f%%')plt.title('2017年第一季度国民生产总值产业构成分布饼图')#子图三ax1=p.add_subplot(2,2,3)plt.pie(values[0,6:],explode=explode2,labels=label2,autopct='%1.1f%%')plt.title('2017年第一季度国民生产总值产业构成分布饼图')#子图4ax1=p.add_subplot(2,2,4)plt.pie(values[-1,6:],explode=explode2,labels=label2,autopct='%1.1f%%')plt.title('2017年第一季度国民生产总值产业构成分布饼图')plt.show()![]() 绘制国民生产总值分散情况的箱形图 plt.rcParams['font.sans-serif'] = 'SimHei'plt.rcParams['axes.unicode_minus'] = Falsedata = np.load('../国民经济核算季度数据.npz')name = data['columns']values = data['values']label1=['第一产业','第二产业','第三产业']label2=['农业','工业','建筑','批发','交通','餐饮','金融','房地产','其他']gdp1=(list(values[:,3]),list(values[:,4]),list(values[:,5]))gdp2 = ([list(values[:,i]) for i in range(6,15)])p = plt.figure(figsize=(8,8))#子图1ax1=p.add_subplot(2,1,1)#绘制箱线图plt.boxplot(gdp1,notch=True,labels=label1,meanline=True)plt.title('2000~2017年各产业国民生产总值箱线图')plt.ylabel('生产总值(亿元)')#子图2ax1=p.add_subplot(2,1,2)#绘制箱线图plt.boxplot(gdp2,notch=True,labels=label2,meanline=True)plt.title('2000~2017年各行业国民生产总值箱线图')plt.ylabel('生产总值(亿元)')plt.show()![]() 绘制人口分布比例图 data = np.load('../populations.npz')plt.rcParams['font.sans-serif'] = 'SimHei'plt.rcParams['axes.unicode_minus'] = Falsep = plt.figure(figsize=(12,12))ax1 = p.add_subplot(2,2,1)plt.scatter(data[:,0],data[:,1],marker='o',c='r')plt.yticks((120000,138000))plt.xticks(range(0,21),data[:,0],rotation=45)plt.title('1996~2015年人口变化趋势')ax2 = p.add_subplot(2,2,2)label = ['总人口数','男性人口','女性人口','城镇人口','乡村人口']plt.bar(range(5),data[0,1:6],width=0.5)plt.xticks(range(5),label)plt.title('2015年各个人口占数直方图')ax3=p.add_subplot(2,2,3)explode=[0.01,0.01,0.01,0.01]label = ['男性人口','女性人口','城镇人口','乡村人口']plt.pie(data[0,2:6],explode=explode,labels=label,autopct='%1.1f%%')plt.title('2015年各个人口占比饼图')ax4=p.add_subplot(2,2,4)plt.plot(data[:,0],data[:,-1],'b-', data[:,0],data[:,-2],'r-', data[:,0],data[:,-3],'c-', data[:,0],data[:,-4],'k-')plt.legend(['乡村人口','城镇人口','女性人口','男性人口'])plt.xlabel('年份')plt.ylabel('人口总数(万人)')plt.xticks(range(21),data[:,0],rotation=45)plt.title('1996~2015人口变化情况')plt.show()![]() ok,基础案例大概也许就这么多吧,明确表明这些只是一些基础内容,更漂亮的图大家可以参考诸位大神的杰作,作为直男我可能缺少欣赏没得元素吧~下面给大家分享几张漂亮的图片仅供欣赏~ 极坐标: ![]() 颜色映射: ![]() 光标显示: ![]() ![]() 颜色过敏者: ![]() ![]() 标识: ![]() 表图: ![]() 3D: ![]() |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |