python数据可视化绘制图表(直方图,饼图圆环图,散点或气泡图,误差棒图)

一,直方图

#  先导入模块

import numpy as np 
import matplotlib.pyplot as plt

#  准备50个随机的数据

scores = np.random.randint(0,100,50)

#  绘制直方图

plt.hist(scores,bins=8,histtype='stepfilled')
plt.show()

其中,scores为 数组(可为单个或多个的数列)

bins=8,表示矩形的条数为8,一般为10

histtype='直方图的类型'   例如:'bar'  表示默认的直方图   'barstacked'  为堆积直方图

'stepfilled' 为填充直方图   'step'  为未填充直方图。

  下图为单个数组的直方图

 多组数据的直方图(并用未填充直方图表示)

import numpy as np 
import matplotlib.pyplot as plt
scores1 = np.random.randint(0,100,50)
scores2 = np.random.randint(0,100,50)
plt.hist([scores1,scores2],bins=8,histtype='step')   # 'step'  为未填充直方图
plt.show()

二,饼图或圆环图

#  导入模块

import numpy as np
import matplotlib.pyplot as plt

#  每个扇形的占比和名称

data = np.array([20,35,25,15,45,40])
pie_labels= np.array(['A','B','C','D','E','F'])

#  绘制饼图

plt.pie(data, radius=1.5, labels = pie_labels, autopct='%3.1f%%')
plt.show()

其中,radius=1.5 表示饼图半径1.5

           labels = pie_labels  表示定义每个扇形的名称

           autopct='%3.1f%%'   表示保留一位小数,如果保留两位则改成.2

#   绘制圆环图 

plt.pie(data, radius=1.5, wedgeprops={'width': 0.7}, labels = pie_labels, autopct='%3.2f%%',  pctdistance=0.75)   #保留2位小数
plt.show()

其中, radius=1.5  表示外环圆半径 

            wedgeprops={'width': 0.7}   表示保留的内外圆半径的差,就环的半径为0.7

            pctdistance=0.75 表示占比的位置离圆心的距离为7.5

如果想要用中文命名扇形,导入的模块就有所不同,并且可以用 (startangle)来绘制扇形的起点,按顺序显示每块扇形。

如下:

# 导入模块

import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False

# 饼图外侧的说明文字
kinds = ['购物','人情往来','餐饮美食','通信物理','生活日用','休闲娱乐','交通出行','其他']
money_scale = [800,100,1000,200,300,200,200,200]
dev_position = [0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]   # 让每个扇形裂开 ,离圆心的距离为0.1

# 绘制饼图
plt.pie(money_scale,  labels=kinds,  autopct='%3.1f%%',  shadow=True,
        explode=dev_position,   startangle=90)
plt.show()

其中 startangle=90   表示以坐标轴右边为起点逆时针转90度为扇形的绘制起点,并按逆时针显示                                    定义的每一个扇形

         explode=dev_position   让每个扇形按定义的距离离中心裂开

三,散点图或气泡图

该函数常用的参数

s:表示数据点的大小

c :表示数据点的颜色

marker:表示数据点的样式,默认圆形

alpha:表示透明度 ,取值范围0~1,越小越透明

linewidths:表示数据点边缘的宽度

edgecolors:表示数据点边缘的颜色

#随机取50个点

num =50
x=np.random.rand(num)
y=np.random.rand(num)

#绘制散点图
plt.scatter(x,  y,  c='b',  alpha=0.5,  edgecolors='k') 

 气泡图

num =50
x=np.random.rand(num)
y=np.random.rand(num)
area = (30 * np.random.rand(num))**2
plt.scatter(x,y,c='b',alpha=0.5, s=area)

四,误差棒图 

常用函数的参数

frnt:表示数据点的标记样式和数据点之间的链接样式

ecolor:误差棒的颜色

elinewidth:误差棒线条竖杆大小

capsize:误差棒横杆大小

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(5)
y = (20,32,34,20,25)
y_offset = (3,5,2,3,3) # 误差棒的误差长度
plt.errorbar(x,y,yerr=y_offset,capsize=3,capthick=2)
plt.show()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值