python数据可视化 matplotlib(1) 小白从零开始的入门 - 气泡图/棉棒图/误差棒图/柱形图/极线图基本版绘制

matplotlib的书昨天到了,所以先把这个整理完,再继续pyecharts

matplotlib初识

matplotlib库是建立在Numpy基础上的绘图库。

简单的函数绘制

在这里插入图片描述
x= np.linspace(0,10,50)是表示在0至10之间均匀取50个数
ls="-":折线图的线条风格
lw=2:折线图线条宽度
label="plot":折线图内容标签文本
折线图:plt.plot(x,y,label="plot")
散点图:plt.scatter(x,y,label="scatter")

import matplotlib.pyplot as plt
import numpy as np
x= np.linspace(0,10,50) 
y= np.cos(x)
plt.plot(x,y,ls="-",lw=2,label="plot") 
# plt.scatter(x,y,label="scatter") 
plt.legend()
plt.show()

图表组成元素的函数

设置显示数据值范围

在这里插入图片描述
设置x轴的数值显示范围:plt.xlim(xmin,xmax)

import matplotlib.pyplot as plt
import numpy as np
x= np.linspace(0,10,10) 
y= np.cos(x)
plt.scatter(x,y,label="scatter-plt.xlim(0,5)")
plt.xlim(0,5) #图1-3 看对比 
plt.legend()
plt.xlabel ("x")
plt.ylabel("x-axia")
plt.show()

网格线以及参考线设置

网格线设置:ax.grid(linestyle=":",color="r")
参考线设置:
①平行x轴的水平线:ax.axhline(y=0)
②平行y轴的水平线:ax.axvline(x=5)
③平行x轴的水平区域:ax.axhspan(y=0)
④平行y轴的水平区域:ax.axvspan(x=5)
在这里插入图片描述

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
# Data for plotting
t= np.linspace(0,10,100) 
s= np.cos(t)
fig, ax = plt.subplots()
ax.scatter(t, s)
ax.set(xlabel='x-axis', ylabel='y-axis',title='xlabel') #x轴标签
# ax.grid(linestyle=":",color="r") # 网格线
ax.axhline(y=0,c="r",ls="--",lw=2) # 水平线 红色的那条
ax.axvline(x=5,c="g",ls="--",lw=2) # 绿色的水平线
plt.show()

参考区域设置以及添加指向的注释

添加指向的注释:annotate()
在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np

# Data for plotting
x= np.linspace(0,10,100) 
y= np.sin(t)
fig, ax = plt.subplots()
ax.scatter(x,y)
#ax.axhspan(ymin=-0.25,ymax=0.25,facecolor="r",alpha=0.3) # 水平线 红色的那条
#ax.axvspan(xmin=4,xmax=6,facecolor="g",alpha=0.2) # 绿色的水平线
ax.set(title='annotate()') #x轴标签
ax.legend()
plt.annotate("maximum",
            xy=(np.pi/2,1), #箭头指向位置 
            xytext=((np.pi/2)+1.0,.8), #文本位置
            weight="bold",  #文本加粗
            color="r",   #文本是红色的 
            arrowprops=dict(arrowstyle="->",connectionstyle="arc3",color="r") #箭头设置
            )
plt.show()

简单图形

柱形图 & 条形图

在这里插入图片描述
matplotlib会有中文乱码的问题,所以需要在前面添加两行代码:
plt.rcParams['font.sans-serif'] = ['KaiTi'] plt.rcParams['axes.unicode_minus'] = False
柱状图bar(x,y)
条形图barh(x,y)

# -*- coding:utf-8 -*-
import matplotlib as mpl
import matplotlib.pyplot as plt
#解决中文显示问题
plt.rcParams['font.sans-serif'] = ['KaiTi'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
#some simple data
x= [1,2,3,4,5,6,7]
y= [3,1,4,5,8,9,7]
# create bar
fig, ax=plt.subplots()
#ax.bar(x,y,align="center",color="c",tick_label=["7/23","7/24","7/25","7/26","7/28","7/29","7/30"],hatch="/") #柱形图
ax.barh(x,y,align="center",color="#F5B26F",tick_label=["7/23","7/24","7/25","7/26","7/28","7/29","7/30"],hatch="/") #条形图
ax.set(xlabel='重量(kg)', ylabel='日期',title='条形图')
ax.legend()
ax.show()

饼图& 极线图

在这里插入图片描述
饼图plt.pie(x)
设置饼图
①名称:labels = '苹果', '西瓜', '柠檬', '荔枝'
②颜色:colors=["#F5B26F","#FA8072","#DC143C","#FFE4E1"]
③大小:sizes = [2, 30, 45, 10]
④突出:explode = (0, 0, 0.1, 0)
饼图更加均匀:ax1.axis('equal')
极线图:在极坐标绘制折线图
函数:plt.polar(theta,r)
theta表示夹角大小;r表示标记到圆点的距离

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['KaiTi'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

# Pie chart, where the slices will be ordered and plotted counter-clockwise:
labels = '苹果', '西瓜', '柠檬', '荔枝' #名称 逆时针
colors=["#F5B26F","#FA8072","#DC143C","#FFE4E1"] #颜色设置
sizes = [2, 30, 45, 10] #一一对应就行
explode = (0, 0, 0.1, 0)  # 只突出柠檬 这可以随意设定
fig1, ax1 = plt.subplots()
ax1.pie(sizes, explode, labels=labels, autopct='%1.1f%%',colors=colors,
        shadow=False, #有无阴影
        startangle=90 #设置90比较好看呐
        )
ax1.axis('equal')  # Equal aspect ratio ensures that pie is drawn as a circle.
'''极线图的代码
import matplotlib.pyplot as plt
barslices=10 #数目
theta = 2 * np.pi * np.random.rand(barslices) #角度
r=3*np.random.rand(barslices) #离圆心距离设置
plt.polar(theta,r,
          color="#E7625F", #线的颜色 粉粉的那个
          linewidth=1.5, 
          marker="*", #星星~
          mfc="white", ##星星内部颜色
          ms=10 #星星的大小
          )
'''
plt.show()

气泡图

在这里插入图片描述
气泡图:二维数据借助气泡大小展示三维数据
函数:plt.scatter(x,y,s,c,cmap,marker)
①s:散点标记的大小
②c:散点标记的颜色
③cmap:将浮点数映射成颜色的颜色映射表
④marker:气泡的形状

import matplotlib.pyplot as plt
import matplotlib.pyplot as mpl
import numpy as np
plt.rcParams['font.sans-serif'] = ['KaiTi'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
a=np.random.randn(80)
b=np.random.randn(80)
fig, ax = plt.subplots()
ax.scatter(a,b,
            s=np.power(10*a+20*b,2), # 散点标记的大小
            c=np.random.rand(80), # 散点标记的颜色
            cmap=mpl.cm.RdYlBu, # 将浮点数映射成颜色的颜色映射表
            marker="o")
ax.set(xlabel='图2-3 气泡图',title='这个图颜色哈哈哈哈我好喜欢')
ax.show()

棉棒图

在这里插入图片描述
棉棒图:绘制离散有序的数据
函数:plt.stem(x,y,linefmt,markerfmt,basefmt
①linefmt:棉棒的样式
②markerfmt:棉棒末端的样式
③basefmt:制定基线的样式

import matplotlib.pyplot as plt
import numpy as np
a=np.random.randn(20)
b=np.random.randn(20)
plt.stem(a,b,linefmt="-.",markerfmt="o",basefmt="-") #棉棒图
plt.show()

误差棒图

在这里插入图片描述
误差棒图:绘制y轴方向或是x轴方向的误差范围

import matplotlib.pyplot as plt
import numpy as np
a=np.linspace(0.1,0.6,6)
b=np.exp(a)
plt.errorbar(a,b,fmt="bo:",yerr=0.2,xerr=0.02) #误差棒图
plt.show()
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值