python可视化工具之matplotlib(1)基本图表

文章目录

*
图表样式及属性简介

+ 1、线linestyle和点marker的样式
+ 2、标题 plt.title()
+ 3、轴标签 plt.xlabel() plt.ylabel()
+ 4、轴范围 (上限下限) plt.xlim() plt.ylim()
+ 5、轴刻度 plt.xticks() plt.yticks()
+ 6、图例 plt.legend()
+ 7、四个边框 ax.spines[ ].set_color()
+ 8、数据标签 plt.text()
+ 9、带箭头的显示文本 plt.annotate()
一、折线图 plt.plot()

+ 1.1、参数讲解
+ 1.2、一条折线
+ 1.3、多条折线
+ 1.4、水平线与垂直线
二、散点图 plt.scatter()

+ 2.1、参数
+ 2.2、散点图
+ 2.3、气泡图
三、饼图 plt.pie()

+ 3.1、参数
+ 3.2、饼图
+ 3.3、改变饼图中的字体大小
+ 3.4、环形图
四、条形图(柱状图) plt.bar()

+ 4.1、参数
+ 4.2、单条形图
+ 4.3、横向条形图 plt.barh()
+ 4.4、多标签条形图 — 左右分布图
+ 4.5、多标签条形图 — 叠堆图
五、直方图 plt.hist()
六、箱线图 plt.boxplot ()

  • Matplotlib是一个Python 2D绘图库,Matplotlib试图让简单的事情变得更简单,让无法实现的事情变得可能实现。 只需几行代码即可生成 图,直方图,条形图,散点图等。支持python、numpy、pandas基本数据结构,运营高效且有较丰富的图表库。可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。能将数据进行可视化,更直观的呈现;使数据更加客观、更具说服力。
  • 本博客主要展示基本的常见图表制作及图表样式修改,图表:折线图、饼图、散点图、条形图、直方图、热力图、箱线图。
  • 下面这张图向我们展示了一张图表当中的所有可以设置的属性,以此美化图表。借着折线图的制作详细展示这些属性的修改。
  • matplotlib官网:👉点这里
    python可视化工具之matplotlib(1)基本图表

; 图表样式及属性简介

  • 小栗子
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] =['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False

x = [1.3,2.5,3.7,5.7,8.9,9.5]
y = [2.5,3.5,4.5,6.8,7.9,9.9]
plt.figure(figsize=(10,4))

plt.plot(x,
        y,
        color='c',
        linewidth=5,
        linestyle='--',
        marker='o',
        markeredgecolor='red',
        markeredgewidth=1,
        markersize=10,
        label='我是图例'
           )

plt.title('我是标题',fontsize=20,color='red',loc='left')
plt.xlabel('我是x轴',fontsize=15,color='blue',labelpad=-25,position=(1.05,0))
plt.ylabel('我是y轴',fontsize=15,color='blue',labelpad=10,position=(0,0.9))
plt.xticks(x,[f'x_{i}' for i in range(len(x))],size=12)
plt.yticks(y,["%.2f" %i for i in y],size=11)
plt.ylim([0,15])
plt.legend(loc='upper center')

ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

for x,y in zip(x,y):
    plt.text(x-0.1,y+0.5,y)

plt.annotate('我在学习python画图呢!',xytext = (6,4),xy = (9,10), arrowprops = dict(facecolor = 'blue', shrink = 0.1))
plt.scatter(9,10,s=100,c='m')
plt.show()

python可视化工具之matplotlib(1)基本图表

1、线linestyle和点marker的样式

线样式描述’-‘实线样式’- -‘短横线样式’-.’点划线样式’:’虚线样式 点样式描述点样式描述’1’下箭头标记’.’点标记’2’上箭头标记’o’圆标记’3’左箭头标记’x’X 标记’4’右箭头标记’^’正三角标记’s’正方形标记’v’倒三角标记’p’五边形标记’

2、标题 plt.title()

plt.title(label,
          loc='',
          fontsize='',
          color='',
          pad=
          )

3、轴标签 plt.xlabel() plt.ylabel()

plt.xlabel(label,
           fontsize=15,
           color='blue',
           labelpad=-25,
           position=(1.05,0))

4、轴范围 (上限下限) plt.xlim() plt.ylim()

plt.ylim(y_min,y_max)

5、轴刻度 plt.xticks() plt.yticks()

plt.xticks(ticks=None,
            labels=None,
            color='')

6、图例 plt.legend()

plt.plot(label)
plt.legend(loc='')

loc位置描述’upper left’左上方’upper right’右上方’lower left’左下方’lower right’右下方’upper center’上正中心’lower center’下正中心’center left’左正中心’center right’右正中心’center’正中心’best’重叠部分最少的最佳位置

7、四个边框 ax.spines[ ].set_color()

ax = plt.gca()
ax.spines['loc'].set_color('color')

8、数据标签 plt.text()

plt.text(x,y,text,fontsize='',color='')

9、带箭头的显示文本 plt.annotate()

plt.annotate(text,
            xytext=(),
            xy=(),
            fontsize=12,
            color='red',
            arrowprops=dict{facecolor='',shrink=0.1})

一、折线图 plt.plot()

1.1、参数讲解

plt.plot(x,
        y,
        color='green',
        marker='o',
        linestyle='dashed',
        linewidth=2,
        markersize=12,
        markeredgecolor='',
        markeredgewidth=12,
        label='')

1.2、一条折线

x = np.arange(0,10)
y1 = x**2+5*x
y2 = 10*x+5
plt.figure(figsize=(5,3))
plt.plot(x,y1)
plt.show()

python可视化工具之matplotlib(1)基本图表

1.3、多条折线

plt.figure(figsize=(5,3))
plt.plot(x,y1,'--.',label='y1')
plt.plot(x,y2,':*',label='y2')
plt.legend()
plt.show()

python可视化工具之matplotlib(1)基本图表

1.4、水平线与垂直线

  • 水平线:y是定值,x不定值,传参时x和y的维度必须一致
  • 垂直线:x是定值,y不定值,传参时x和y的维度必须一致
plt.plot([5 for i in range(0,10)],range(0,10),c='red')
plt.plot(range(1,10),[5 for i in range(11,20)],c='yellow')
plt.legend(['我是垂直线','我是水平线'])
plt.show()

python可视化工具之matplotlib(1)基本图表

二、散点图 plt.scatter()

2.1、参数

plt.scatter(x, y,
            s=None,
            c=None,
            marker=None,
            cmap=None,
            alpha=None,
            linewidths=None,
            edgecolors=None
        )

2.2、散点图

x = np.random.random(20)*10
y = np.random.random(20)*10
plt.scatter(x, y, s=80, marker='o', c='red',alpha=0.7, edgecolors='yellow')
plt.show()

python可视化工具之matplotlib(1)基本图表

2.3、气泡图

  • 气泡图就是将散点图的点根据数值大小变化点的大小(及颜色)
  • 参数cmap取值可以参考:这里
x = np.random.random(20)*10
y = np.random.random(20)*10
s = np.arange(100,400,20)
plt.scatter(x, y, s=s,c=y, marker='o', cmap='plasma',alpha=0.7)
plt.show()

python可视化工具之matplotlib(1)基本图表

三、饼图 plt.pie()

3.1、参数

pie(x,
    explode=None,
    labels=None,
    colors=None,
    autopct=None,
    pctdistance=0.6,
    shadow=False,
    labeldistance=1.1,
    radius=None,
    counterclock=True,
    )

3.2、饼图

a = {'shop1':100,'shop2':200,'shop3':300,'shop4':400,'shop5':500,'shop6':600}
plt.pie(a.values(),
        radius=1.4,
        labels=a.keys(),
        labeldistance=1.06,
        autopct="%.2f%%",
        pctdistance=0.7,
        colors=['Indigo','BlueViolet','MediumPurple','MediumSlateBlue','SlateBlue','DarkSlateBlue'],
        counterclock=False,
        explode=[0,0,0,0.14,0,0.1]
       )
plt.show()

python可视化工具之matplotlib(1)基本图表

3.3、改变饼图中的字体大小

plt.figure(figsize=(4,5))
a = {'shop1':100,'shop2':200,'shop3':300,'shop4':400,'shop5':500,'shop6':600}
patches,l_text,p_text=plt.pie(a.values(),
                            radius=1.4,
                            labels=a.keys(),
                            labeldistance=1.06,
                            autopct="%.2f%%",
                            pctdistance=0.7,
                            colors=['Indigo','BlueViolet','MediumPurple','MediumSlateBlue','SlateBlue','DarkSlateBlue'],
                            counterclock=True,
                            explode=[0,0,0,0.14,0,0.1]
                           )

for t in l_text:
    t.set_size(15)
for t in p_text:
    t.set_size(12)

plt.show()

python可视化工具之matplotlib(1)基本图表

3.4、环形图

plt.figure(figsize=(4,5))
a = {'shop1':100,'shop2':200,'shop3':300,'shop4':400,'shop5':500,'shop6':600}
plt.pie(a.values(),
        radius=1.4,
        labels=a.keys(),
        labeldistance=1.06,
        autopct="%.2f%%",
        pctdistance=0.7,
        colors=['Indigo','BlueViolet','MediumPurple','MediumSlateBlue','SlateBlue','DarkSlateBlue'],
        counterclock=True
        )
plt.pie([1],radius=0.8,colors='w')
plt.show()

python可视化工具之matplotlib(1)基本图表

四、条形图(柱状图) plt.bar()

4.1、参数

plt.bar(x,
        height,
        width=0.8,
        bottom=None,
        color,
        edgecolor,
        linewidth,
        tick_label,
        xerr, yerr,
        ecolor,
        orientation,

4.2、单条形图

shop1 = [100,200,300,450,500]
date = ['06-14','06-15','06-16','06-17','06-18']
plt.figure(figsize=(8,3))
plt.bar(date,shop1)
plt.show()

python可视化工具之matplotlib(1)基本图表

4.3、横向条形图 plt.barh()

shop1 = [100,200,300,450,500]
date = ['06-14','06-15','06-16','06-17','06-18']
plt.figure(figsize=(8,3))
plt.barh(date,shop1)
plt.show()

python可视化工具之matplotlib(1)基本图表

4.4、多标签条形图 — 左右分布图

shop1 = [100,200,300,450,500]
shop2 = [70,178,245,356,467]
date = ['06-14','06-15','06-16','06-17','06-18']

plt.figure(figsize=(8,4))

plt.bar(np.arange(5)-0.15,shop1,width=0.3,color='red')
plt.bar(np.arange(5)+0.15,shop2,width=0.3,color='skyblue')
plt.xticks(np.arange(5),date)
plt.legend(['shop1','shop2'],loc='best')
plt.ylim([0,550])

for i,j in enumerate(shop1):
    plt.text(i-0.25,j+10,j)
for i,j in enumerate(shop2):
    plt.text(i+0.1,j+10,j)
plt.show()

python可视化工具之matplotlib(1)基本图表

4.5、多标签条形图 — 叠堆图

shop1 = [100,200,300,450,500]
shop2 = [70,178,245,356,467]
shop_sum = np.array(shop1)+np.array(shop2)
date = ['06-14','06-15','06-16','06-17','06-18']

plt.figure(figsize=(8,4))
plt.bar(date,shop1,color='red')
plt.bar(date,shop2,bottom=shop1,color='skyblue')
plt.legend(['shop1','shop2'],loc='best')
for i,j in enumerate(shop1):
    plt.text(i,j-60,j)
for i,j in enumerate(shop_sum):
    plt.text(i,j-60,shop2[i])
plt.show()

python可视化工具之matplotlib(1)基本图表

五、直方图 plt.hist()

  • 用来计算频次 或 频率
hist(x,
    bins=None,
    range=None,
    density=None,
    histtype='bar',
    align='mid',
    orientation='vertical',
    color=None,
    label=None
     )
np.random.seed(0)
x =  np.random.randn(500)*10
plt.figure(figsize=(8,4))
plt.hist(x,bins=20,width=2,align='right',color='red',label='直方图')
plt.legend()
plt.show()

python可视化工具之matplotlib(1)基本图表

六、箱线图 plt.boxplot ()

boxplot(x,
    notch=None,
    vert=None,
    positions=None,
    widths=None,
    labels=None,
    showbox = True,
    showmeans =False,
    sym='bs'
    )
from sklearn.datasets import load_iris
x = load_iris().data
y = load_iris().target
feature = load_iris().feature_names
target = load_iris().target_names
plt.figure(figsize=(6,3))
plt.boxplot(x,labels=feature,positions=[4,2,3,1],widths=[0.2,0.3,0.4,0.5],showbox=True,showmeans =True,sym='bs')
plt.show()

python可视化工具之matplotlib(1)基本图表

Original: https://blog.csdn.net/m0_69435474/article/details/125022661
Author: 小磊要努力哟
Title: python可视化工具之matplotlib(1)基本图表

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/765733/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 06_数据采集 08_scrapy-redis

    01.scrapy-redis-分布式的概念_原理 02.scrapy-redis-断点续爬 03.scrapy-redis-源码分析 04.scrapy-redis-分布式爬虫实…

    Python 2023年10月2日
    043
  • 服务器(centos)配置, Django搭建web服务

    @[TOC]云服务器(centos)(这里写自定义目录标题) 一.配置服务器 创建一个名为admin的组 groupadd admin 在组内加入名为Wayne的成员 userad…

    Python 2023年8月4日
    060
  • 2023跨年代码(烟花+雪花)

    一眨眼,马上就2023年了,祝大家在新的一年里:身体健康平安,生活充实饱满,事业步步高升,心情阳光灿烂,财运滚滚而来,家庭美满幸福,新年开心快乐! 本文将给大家分享一些跨年代码,基…

    Python 2023年9月26日
    0150
  • educoder:实验十一 函数

    第1关:定义判断质数的函数 任务描述 本关任务:编写一个能判断质数的函数。若参数是质数,返回true;否则返回false。 主程序输入一个数n,然后调用该函数判断其是否是质数,是则…

    Python 2023年8月1日
    075
  • python中参数与图片高度、宽度的对应关系

    概要:在平常的操作中,鄙人常常因为无法弄清相关参数与图片高度、宽度的对应关系,而感到十分苦恼。所以我心一横,将常见的参数与宽高的对应关系整理清楚,也在此分享给大家, 因而本文主要介…

    Python 2023年8月24日
    064
  • Python必知必会 os 模块详解

    文章目录 Python os 模块 * os模块的常用操作 os.path模块 os.open()模块 ❤️ 作者简介:大家好我是小鱼干儿♛是一个热爱编程、热爱算法的大三学生,蓝桥…

    Python 2023年8月2日
    084
  • 数据处理–pandas(下)

    在数据处理–pandas上中我们介绍了如何创建并访问pandas的Series和DataFrame类型的数据,本篇将介绍如何对pandas数据进行操作,掌握这些操作之后,基本可以处…

    Python 2023年8月9日
    047
  • 基于 PyTorch 的 cifar-10 图像分类

    文章目录 前言 一、cifar-10 数据集介绍 二、环境配置 三、实验代码 * 1.简单网络的代码 2.VGG加深网络的代码 四、运行结果 五、遇到的问题 总结 前言 本文的主要…

    Python 2023年8月1日
    072
  • Python | Numpy三维数组维度变换/提取

    0. 问题描述 每次使用Numpy,遇到需要从(A,B,C)三维数组中提取(A,B)、(A,C)或者(B,C)或者(A,)这几个维度数据时,总是忘记该如何切片,网上搜到的又太详细,…

    Python 2023年8月23日
    069
  • vue项目的首屏优化策略

    虽然标题是vue项目的首屏优化策略,但是里面绝大部分的方法,对于其他语言写成的单页应用同样适用 首屏进入时,直接加载和首屏相关路由,其他全部路由组件实现懒加载,即打开该路由时再去加…

    Python 2023年10月7日
    053
  • def序列化器—视图&序列化&反序列化

    0.介绍 a. 本文介绍了常用的,视图&反序列化&序列化,中使用的方法。 b. 序列化器他有两个作用:序列化、校验。 c. 序列化、校验,可以走一个序列化器,也可以…

    Python 2023年8月5日
    065
  • Django_simpleui 笔记

    文章目录 前言 一、Django+simpleui * 1、Django安装 2、simpleui模板的安装 二、配置Django SimpleUI打造个性化后台(定制化平台) *…

    Python 2023年8月6日
    072
  • 《Nuitka打包实战指南》实战打包PyGame

    实战打包PyGame 打包示例源码: 请看文章末尾 版本信息: pygame==2.1.2 Nuitka==0.6.19.1 打包系统: Windows10 64位 笔者从M to…

    Python 2023年9月18日
    079
  • python 事件处理_Python Flask关闭事件处理程序

    我使用Flask作为REST端点,该端点将应用程序请求添加到队列中。然后,该队列被第二个线程使用。 server.py def get_application(): global …

    Python 2023年8月14日
    0101
  • 类类型

    public private protected 1.默认是private。 2.类里面的函数可以调用private的东西,在外界不能直接调用private的 而且先得定义一个Cn…

    Python 2023年6月12日
    084
  • python计算速度和距离_计算时序坐标系间的距离和速度

    似乎你可以使用^{}的魔力。在 读取数据 使用^{}函数很容易从csv文件创建pandas dataframe:import pandas as pd df = pd.read_c…

    Python 2023年8月7日
    061
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球