学习笔记:Python绘图之matplotlib(持续更新中...)

目录

参数选择

color颜色参考

linestyle参数可指定值:

 marker参数可指定值:

 基本设置

 设置标题和标签的字体属性

标题的位置设定

 指定要显示的网格线

设置网格线的线属性

绘图

折线图 plt.plot()函数基本用法

散点图 plt.scatter() 用法

显示多个图 subplots()

颜色图

柱状图 bar()

水平柱状图

柱状图 设置条形宽度和高度

饼图

 起始角度

分离指定的块

阴影

显示占比


参数选择

color颜色参考

‘b’ 蓝色 ‘y’ 黄色
‘g’ 绿色 ‘k’ 黑色
‘r’ 红色 ‘w’ 白色
‘m’ 品红色
‘c’ 青色

linestyle参数可指定值:

实线:'-' 杠点线:'-.'
虚线:'--' 点线:':'

 marker参数可指定值:

'o'  :  圆圈 '^'  :  上三角 'square'  或  's'  :  方形
'+'  :  加号 'v'  :  下三角 'diamond'  或  'd'  :  菱形
'*'  :  星号 '>'  :  右三角 'pentagram'  或  'p'  :  五角星(五角形)
'.'  :  点 '<'  :  左三角 'hexagram'  或  'h'  :  六角星(六角形)
'x'   :  叉号

 基本设置

 设置标题和标签的字体属性

  • 使用xlabel(),ylabel(),title()中的fontdict参数来设置字体属性
font = {'family': 'KaiTi', 'color': 'blue', 'size': 20}
plt.title('title position', loc="center", fontdict=font)

标题的位置设定

  • 使用title()中的loc参数来设置标题位置
  • 合法值:“left”,“right”,“center”。默认为"center"
plt.title('title position', loc="center")

 指定要显示的网格线

  • 使用grid()函数中的axis轴参数来设置
  • 合法值:“x”,“y”,“both”。默认为"both"
plt.grid(axis='x') 

设置网格线的线属性

plt.grid(color='color',linestyle='linestyle',linewidth='number')

绘图

折线图 plt.plot()函数基本用法

color  简写  c

linestyle  简写  ls 

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]  # 横轴坐标
y = [1, 2, 3, 4]  # 纵轴坐标
y1 = [4, 5, 6, 7]  # 纵轴坐标2

plt.plot(x, y,
         color='green',         # 折线颜色
         marker='o',            # 折线图中添加圆点标记
         linestyle='dashed',    # 折线类型
         linewidth=2,           # 折线宽度
         markersize=12,         # 标记大小
         label='line1')         # 折线标签

plt.plot(x, y1, c='red', marker='*', ls='-.', linewidth=2, markersize=12, label='line2')
plt.xlabel('x')    # x轴标签
plt.ylabel('y')    # y轴标签
plt.title('Simple Plot')    # 折线图标题
plt.legend()    # 显示折线标签
plt.show()      # 显示折线图

散点图 plt.scatter() 用法

调用方法:plt.scatter(x, y, s, c, marker, cmap, norm, alpha, linewidths, edgecolorsl)
参数说明:
x: x轴数据
y: y轴数据
s: 散点大小
c: 散点颜色
marker: 散点形状
cmap: 指定特定颜色图,该参数一般不用,有默认值
alpha: 散点的透明度
linewidths: 散点边框的宽度
edgecolors: 设置散点边框的颜色


import matplotlib.pyplot as plt

x = np.random.randn(100) # 横坐标
y = np.random.randn(100) # 纵坐标

#设置画布大小
plt.figure(figsize = (10, 6))
 
#设置颜色:根据颜色图和数字大小来控制点的颜色
colors = np.random.randn(100)
plt.scatter(x, y, 
            #大小
            s = np.power(10*x + 20*y, 2),  # 表示点的大小:(10x+20y)**2
            c = colors,          # 颜色
            marker = '*',        # 点的形状
            cmap = 'rainbow',    # 指定某个colormap值(颜色图)
            edgecolors = 'r',    # 散点边框颜色
            alpha = 0.6)         # 透明度
 
plt.title('彩虹五角星图',fontsize= 20,c = 'r')
plt.show()

显示多个图 subplots()

使用subplots函数来显示多张图

  • subplots(几行,几列,第几张子图)
  • 在绘制plot函数之前使用
  • import matplotlib.pyplot as plt
    
    x = [1, 2, 3, 4]  # 横轴坐标
    y = [1, 2, 3, 4]  # 纵轴坐标
    y1 = [4, 5, 6, 7]  # 纵轴坐标2
    
    plt.subplot(1, 2, 1)    # 图一
    plt.plot(x, y, color='green', marker='o', linestyle='dashed', linewidth=2, markersize=12, label='line1')
    plt.subplot(1, 2, 2)    # 图二
    
    plt.plot(x, y1, c='red', marker='*', ls='-.', linewidth=2, markersize=12, label='line2')
    
    plt.show()      # 显示折线图

颜色图

Matplotlib模块有许多可用的颜色图,颜色图就像一个颜色列表,里面每一种颜色都有一个范围从0到100的值,"viridis"颜色图:

  • 可以使用带有颜色图值的关键字参数cmap指定颜色图
  • 此外还要创建一个包含值从0到100的数组,数量与散点图的点对应即可
  • import matplotlib.pyplot as plt
    
    x = np.array([1, 2, 3, 4, 5, 6])
    y = x**2
    colors = np.array([0, 20, 40, 60, 80, 100])
    
    plt.scatter(x, y, c=colors, cmap='viridis')
    plt.colorbar()  # 把颜色图展示在旁边
    plt.show()

柱状图 bar()

使用函数绘制柱状图

import matplotlib.pyplot as plt

x = np.array(["A", "B", "C", "D", "E", "F"])
y = np.array([70, 10, 50, 100, 150, 40])
plt.bar(x, y)
plt.show()

水平柱状图

使barh()用函数即可

import matplotlib.pyplot as plt

x = np.array(["A", "B", "C", "D", "E", "F"])
y = np.array([70, 10, 50, 100, 150, 40])
plt.barh(x, y)
plt.show()

柱状图 设置条形宽度和高度

  • bar() 使用关键字width来设置宽度
  • barh() 使用关键字height来设置高度

饼图

使用pie()函数绘制饼图

import matplotlib.pyplot as plt

labels = ['a', 'b', 'c', 'd', 'e']
y = np.array([1, 2, 3, 2, 2])
plt.pie(y, labels=labels)
plt.show()
 起始角度
  • 默认起始角度位于x轴,但可以通过关键字startangle来更改
  • startangle默认角度为0,以度为单位
分离指定的块
  • 使用关键字explode实现分离一个块
  • 必须是一个数组,每个块都要有值,值代表距离中心有多远
  • import matplotlib.pyplot as plt
    
    labels = ['a', 'b', 'c', 'd', 'e']
    y = np.array([1, 2, 3, 2, 2])
    my_explode = [0, 0, 0, 0, 0.5]  # 指定分离块,及分离距离
    plt.pie(y, labels=labels, explode=my_explode)
    plt.show()

阴影

将关键字shadows设置为True: shadows=True

显示占比

使用关键字 autopct 设置显示比例格式:autopct='%1.1f%%'

import matplotlib.pyplot as plt

labels = ['a', 'b', 'c', 'd', 'e']
y = np.array([1, 2, 3, 2, 2])
my_explode = [0, 0, 0, 0, 0.5]  # 指定分离块,及分离距离
plt.pie(y, labels=labels, explode=my_explode, shadow=True, autopct='%1.1f%%')
plt.show()

猜你喜欢

转载自blog.csdn.net/qq_45670495/article/details/143096065