wjx-2005-07-01  

Matplotlib数据可视化基础

一、绘制基本图形

1、绘制折线图

import numpy as np
import matplotlib.pyplot as plt
#创建数组x
x = np.arange(10)
np.random.seed(500)
#创建数组y
y = np.random.randint(20,size=(10,))
plt.plot(x,y,'b-')
plt.xticks(fontsize = 15)
plt.yticks(fontsize = 15)
plt.show()

2、线条属性的设置

颜色设置:

b:蓝色

g:绿色

r:红色

.......

线条设置:

‘-’:实线

‘--’:短画虚线

‘-.’:点画线

‘:’:点虚线

3、图标题、坐标轴标题和坐标轴范围设置

#为了显示中文,指定默认字体
plt.rcParams['font.sans-serif'] = ['SimHei']
#坐标轴标题
plt.title
plt.xlabel
plt.ylabel

4、绘制多图与图例的设置

#第一条线的参数
plo1, = plt.plot(x,y1,'r--',marker='o',linewidth=1)
#第二条线的参数
plo2, = plt.plot(x,y2,'g-',marker='+',linewidth=2)
#loc表示图例放置的位置,可以使用位置字符串,也可以使用位置代码
plt.legend((plo1,plo2),('开盘价','收盘价'),loc=4,fontsize=15,numpoints=3)
#numpoints参数设置二维线状图像显示在图例上的点的数量。
请注意:在上名的前两行代码左边表达式均有一个逗号。
这是因为plot返回的不是二维折线对象本身,而是产生的一个列表,
加上一个逗号,可以把二维折线对象给分解出来。

5、散点图

可以利用scatter来绘制散点图
import numpy as np
import matplotlib.pyplot as plt
#读取数据
a1 = np.loadtxt('array1.txt',delimiter=',',unpack=True,usecols=(4,),dtype=np.float32,skiprows=1)
x = np.arange(len(a1))
#设置散点图,marker值有点,o和*
plt.scatter(x,a1,c='r',marker='o')
plt.rcParams['font.sans-serif'] = ['SimHei']

6、直方图

直方图是一种统计报告图,是数值数据分布的图形表示,由一系列条形组成。构建直方图的第一步是将数据的统计范围分成多个区段,然后计算分别有多少个数据落在相应的区段内,再根据每个区段的统计数据个数来绘制条形的高度。

import numpy as np
import matplotlib.pyplot as plt
a1 = np.loadtxt('array2.txt',delimiter=',',unpack=True,usecols=(4,),dtype=np.int_,skiprows=1)
bins = np.arange(5,15,0.2)
plt.hist(a1,bins,rwidth=0.8)

7、饼图

matplotlib.pyplot模块中的函数pie()用于绘制饼图。
import matplotlib.pyplot as plt
persons = [33,65,30,30]
majors = ['信息管理与信息系统','应用统计','经济统计','数据科学与大数据技术']
color = ['c','r','b','g']
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.figure(figsize=(7.5,5))#设置图像大小
plt.pie(persons,labels=majors,colors=color,startangle=90,shadow=True,explode=(0.1,0,0.1,0),autopct='%.1f%%',textprops={'fontsize':15})
plt.title('各专业新生人数分布',fontsize=18)
plt.show()

二、绘制多轴图

1、用subplot()函数绘制多轴图

#创建图像
pt.figure(figsize=(11,7))
#创建子图
ax1 = pt.subplot(2,2,1)
ax2 = pt.subplot(2,2,2)
ax3 = pt.subplot(2,2,3)
ax4 = pt.subplot(2,2,4)

2、多轴图的轴展开与遍历

定义好多轴的行数和列数后,通过axis.ravel()方法展开轴,可以对每个依次遍历来操作各个子图。
import matplotlib.pyplot as pt
a1,a2,a3,a4 = np.loadtxt('array2.txt',delimiter=',',usecols=(1,2,3,4),unpack=True,skiprows=1)
x = np.arange(len(a1))
pt.rcParams['font.sans-serif'] = ['SimHei']
a = [a1,a2,a3,a4]
colors = ['red','green','black','blue']
linestyles= ['solid','dashed','dashdot','dotted']
labels = ["开盘价",'收盘价','最高价','最低价']
fig,axes = pt.subplots(ncols=2,nrows=2)
#创建图像
pt.figure(figsize=(11,7))
for ax,price,color,linestyle,label in zip(axes.ravel(),a,colors,linestyles,labels):
    ax.plot(x,price,color=color,linestyle = linestyle)
    pt.sca(ax)
    pt.xticks(fontsize=15)
    pt.yticks(fontsize=15)
    pt.title(label,fontsize=12)
    pt.xlabel("时间顺序",fontsize=15)
    pt.ylabel(label,fontsize=15)
pt.subplots_adjust(wspace=0.2,hspace=0.5)
pt.show()

三、坐标轴的刻度标签

默认情况下,图形坐标轴上的刻度文字标签可能不能满足用户的需求,可以通过设置来改变刻度上的标签文本。

可以使用week、calendar等作为横坐标

以下是可以使用matplotlib绘制的图形:

  • 坐标轴的主次刻度、网格设置
  • 移动坐标轴
  • 文字说明和注释
  • 显示图片
  • 日期作为横坐标
  • 绘制横线与竖线作为辅助线
  • 箱线图
  • 小提琴图
  • 热力图
  • 填充图
  • 等高线图
  • 绘制三维图表
  • 三维折线图
  • 三维曲面图
posted on 2024-01-23 19:44  星辰与Python  阅读(6)  评论(0编辑  收藏  举报