python怎么根据数据绘图,python 数据分析画图

大家好,本文将围绕python怎么根据数据绘图展开说明,python 数据分析画图是一个很多人都想弄明白的事情,想搞清楚python图像数据处理需要先了解以下几个事情。

  1. 折线图(plot)

折线图:一条线用一组x和y的数组,这些数组可以是自定义也可以是从其他文件读入

import matplotlib.pyplot as plt
a=[1,5,3,4,5]
plt.plot(a)

在这里插入图片描述

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'  
plt.rcParams['axes.unicode_minus'] = False 
df=pd.read_excel('.\互联网公司股票.xlsx',parse_date=['日期'],index_col='日期')
df['收盘'].plot()

在这里插入图片描述

  1. 柱形图(bar)

需要数组作为x和y轴的值

import numpy as np
import matplotlib.pyplot as plt
x=[1,2,3]
y=[3,5,8]
plt.bar(x,y)

在这里插入图片描述
3. 条形图 (barh)

需要数组作为x和y轴的值

import numpy as np
import matplotlib.pyplot as plt
x=[1,2,3]
y=[3,5,8]
plt.barh(x,y)

在这里插入图片描述
4. 堆积图 (bar,barh,stackplot)
1)堆积柱形图

画出一个简单的柱形图,在以画好的图作为底部的基础,继续画图

import numpy as np
import matplotlib.pyplot as plt
x=[1,2,3]
y=[3,5,8]
a=np.arange(3)
plt.bar(a,x)
plt.bar(a,y,bottom=x)
plt.show()

在这里插入图片描述
2)堆积条形图

画出一个简单的柱条形图,在以画好的图作为左边的基础,继续画图

import numpy as np
import matplotlib.pyplot as plt
x=[1,2,3]
x2=[4,5,6]
y=[3,5,8]
plt.barh(y,x)
plt.barh(y,x2,left=x)
plt.show()

在这里插入图片描述
3) 堆积面积图(stackplot)

多个y轴的数组,多条线叠加

#堆积面积图,y轴的点连成一条线,后一条是在前一条的基础上叠加
import numpy as np
import matplotlib.pyplot as plt 

x=np.arange(6)
y1=np.array([1,2,3,4,5,6])
y2=np.array([1,3,3,4,5,6])
y3=np.array([1,5,3,4,5,6])

plt.stackplot(x,y1,y2,y3)
plt.show()

在这里插入图片描述
5. 饼图/圆环图(pie)
1)饼图

主要是数据和标签

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'  
plt.rcParams['axes.unicode_minus'] = False 
data=np.array([10,20,40,70,100])
label=np.array(['购物','人情往来','生活日用','休闲娱乐','学习支出'])
plt.pie(data,labels=label,autopct='%3.1f%%')

在这里插入图片描述
2)圆环图

需要数据,标签、大圆半径和保留的半径长度

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'  
plt.rcParams['axes.unicode_minus'] = False 
data=np.array([10,20,40,70,100])
label=np.array(['购物','人情往来','生活日用','休闲娱乐','学习支出'])
plt.pie(data,labels=label,autopct='%3.1f%%',radius=1.2,wedgeprops={'width':0.7})

在这里插入图片描述
6. 散点图、气泡图(scatter)
1)散点图

scatter(x,y) x和y都是长度相同的数组,数组元素一一对应,形成点

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'  
plt.rcParams['axes.unicode_minus'] = False 
#scatter(x,y)  x和y都是长度相同的数组,数组元素一一对应,形成点
num=20
x=np.random.rand(num)
y=np.random.rand(num)
plt.scatter(x,y

在这里插入图片描述
2)气泡图

气泡图其实就是散点图再加一个点的大小的数组,所以就是x、y的数组和对应点的大小的数组

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'  
plt.rcParams['axes.unicode_minus'] = False 
#scatter(x,y)  x和y都是长度相同的数组,数组元素一一对应,形成点
num=20
x=np.random.rand(num)
y=np.random.rand(num)
area=(40*y)**2
plt.scatter(x,y,s=area)

在这里插入图片描述
7. 箱形图 (boxplot)

最关键的就是输入数据,其他的有的是输入数据的方式不一样,样式不一样

import numpy as np
import matplotlib.pyplot as plt
# 用于正常显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
#用于正常显示符号
plt.rcParams['axes.unicode_minus'] = False

data=np.random.rand(10)
plt.boxplot(data)
plt.show()

在这里插入图片描述

import pandas as pd
import matplotlib.pyplot as plt

#美化图形
plt.style.use('ggplot')
#读入excel表格
excelbook=pd.read_excel('./大二分数.xlsx')
num=excelbook['分数']
## 设置中文和负号正常显示
 
plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'
plt.rcParams['axes.unicode_minus'] = False

#patch_artist=True  : 设置自定义颜色填充箱形图
#showmeans=True  :以点的形式显示均值
#boxprops = {'color':'black','facecolor':'#9999ff'}, # 设置箱体属性,填充色和边框色
#flierprops = {'marker':'o','markerfacecolor':'red','color':'black'}, # 设置异常值属性,点的形状、填充色和边框色
#meanprops : 设置均值的属性
#medianprops : 设置中位线的属性
plt.boxplot(x=num,showmeans=True,patch_artist=True,boxprops={'color':'green','facecolor':'pink'},
            flierprops={'marker':'o','markerfacecolor':'red','color':'blue'},
            meanprops={'marker':'D','markerfacecolor':'purple'},
            medianprops={'linestyle':'--','color':'black'})

在这里插入图片描述
8. 雷达图 (polar)

polar(角度,到原点的距离)

import numpy as np
import matplotlib.pyplot as plt
# 用于正常显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
#用于正常显示符号
plt.rcParams['axes.unicode_minus'] = False


dim_num=6
#数据,角度,维度标签
data=np.array([
    [0.40,0.32,0.35,0.30,0.30,0.88],
    [0.32,0.35,0.54,0.23,0.43,0.90],
    [0.23,0.43,0.90,0.32,0.35,0.67],
    [0.40,0.32,0.35,0.30,0.30,0.60],
    [0.40,0.32,0.77,0.20,0.30,0.60],
    [0.23,0.43,0.90,0.32,0.39,0.56],
])
angle=np.linspace(0,2*np.pi,dim_num,endpoint=False)
label=['研究型','艺术型','社会型',
      '企业型','传统型','现实型']
#把数据,角度,维度标签闭合,围成一圈
data=np.concatenate((data,[data[0]]))
angle=np.concatenate((angle,[angle[0]]))
label=np.concatenate((label,[label[0]]))
#先绘制雷达图
plt.polar(angle,data)
#设置极坐标的标签
plt.thetagrids(angle*180/np.pi,labels=label)
#填充多边形
plt.fill(angle,data,alpha=0.39)

在这里插入图片描述 9. 误差棒图 (errorbar)

x轴,y轴,和误差,3个数组

import numpy as np
import matplotlib.pyplot as plt
# 用于正常显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
#用于正常显示符号
plt.rcParams['axes.unicode_minus'] = False

x=np.arange(5)
y=[10,12,15,16,19]
yerror=[3,2,1,3,5]

plt.errorbar(x,y,yerr=yerror,capsize=6,capthick=3)
plt.show()

在这里插入图片描述

10.树地图

整体分成好多块,饼状图不够用时用树地图

#导包
import matplotlib.pyplot as plt
import squarify

#中文和负号处理办法
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
plt.rcParams['axes.unicode_minus']=False

#设置警告消除
import warnings
warnings.filterwarnings('ignore')

#创建数据
#三个数组,各个数据要一一对应
name=['国内增值税','国内消费税','企业所得税','个人所得税',
        '进口增值税、消费税','出口退税','城市维护建设税',
        '车辆购置税','印花税','资源税','土地和房税','车船税烟叶税等']
income=[3908,856,801,868,1361,1042,320,291,175,111,414,63]
colors = ['steelblue','#9999ff','red','indianred',
          'green','yellow','orange']

#绘图
plot=squarify.plot(
#        绘图数据
        sizes=income,
#        数值标签
        value=income,
#        标签
        label=name,
#        自定义颜色
        color=colors,
#        透明度
        alpha=0.6,
#        边框颜色
        edgecolor='white',
#        边框宽度
        linewidth=1,
        )
#树地图要去掉坐标轴,
plt.axis('off')
#去掉上边和有右边的刻度
plt.tick_params(top='off',right='off')

#设置标签大小
plt.rc('font',size=16)
#设置标题大小
plot.set_title('2017年8月中央财政收支情况',fontdict={'fontsize':15})

plt.show()

在这里插入图片描述

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值