ToB企服应用市场:ToB评测及商务社交产业平台

标题: Matplotlib基础 [打印本页]

作者: 盛世宏图    时间: 昨天 19:07
标题: Matplotlib基础
概述

1、什么是Matplotlib

   
   
  2、为什么要学习Matplotlib

   可视化是在整个数据发掘的关键辅助工具,可以清楚的理解数据,从而调整我们的分析方法。   
    例如下面两个图为数字展示和图形展示:   
  3、实现一个简朴的Matplotlib绘图 — 以折线图为例

3.1 matplotlib.pyplot模块

   matplotlib.pytplot包罗了一系列雷同于matlab的绘图函数。    import matplotlib.pyplot as plt  3.2 图形绘制流程:

   1.创建画布 -- plt.figure()    plt.figure(figsize=(), dpi=)   
    2.绘制图像 -- plt.plot(x, y)    以折线图为例    3.显示图像 -- plt.show()  3.3 折线图绘制与显示

   举例:展现上海一周的气候,比如从星期一到星期日的气候温度如下   
  1. import matplotlib.pyplot as plt
  2. # 1.创建画布
  3. plt.figure(figsize=(10, 10), dpi=100)
  4. # 2.绘制折线图
  5. plt.plot([1, 2, 3, 4, 5, 6 ,7], [17,17,18,15,11,11,13])
  6. # 3.显示图像
  7. plt.show()
复制代码

   
  4、熟悉Matplotlib图像结构(了解)

   
  绘制基础

图形绘制流程:

   1.创建画布 -- plt.figure()    plt.figure(figsize=(), dpi=)   
    2.绘制图像 -- plt.plot(x, y)    以折线图为例    3.显示图像 -- plt.show()  创建画布

    figure(name,figsize=(w,h),dpi=n)
        设置画布大小
            figsize 画布大小
            dpi 分辨率
    subplot()函数将画布分区
        plt.subplot(2,2,1)
            将画布分为 2 行 2 列,将图画到画布的 1 区域


举例:展现上海一周的气候,比如从星期一到星期日的气候温度如下
  1. import matplotlib.pyplot as plt
  2. # 1.创建画布
  3. plt.figure(figsize=(10, 10), dpi=100)
  4. # 2.绘制折线图
  5. plt.plot([1, 2, 3, 4, 5, 6 ,7], [17,17,18,15,11,11,13])
  6. # 3.显示图像
  7. plt.show()
复制代码
 

显示网格

    plt.grid(True, linestyle='--', alpha=0.5)
        参数1:True显示,False:不显示
        参数2:linestyle 线条显示的样式
        参数3:alpha  线条的透明度

  1. import matplotlib.pyplot as plt
  2. # 1.创建画布
  3. plt.figure(figsize=(10, 10), dpi=100)
  4. # 2.绘制折线图
  5. plt.plot([1, 2, 3, 4, 5, 6 ,7], [17,17,18,15,11,11,13])
  6. plt.grid(True, linestyle='--', alpha=0.5)
  7. plt.savefig("testss.jpg")
  8. # 3.显示图像
  9. plt.show()
复制代码

属性

  

图例

    plt.legend()
        显示图例
生存图片

    plt.savefig("./pic1.jpg")
        生存成jpg图片

方法名
说明
title()
设置图表的名称
xlabel()
设置 x 轴名称
ylabel()
设置 y 轴名称
xticks(x,ticks,rotation)
设置 x 轴的刻度,rotation 旋转角度
yticks()
设置 y 轴的刻度
plot()
绘制线性图表
show()
显示图表
legend()
显示图例
text(x,y,text)
显示每条数据的值 x,y 值的位置
figure(name,figsize=(w,h),dpi=n)
设置图片大小
  1. import matplotlib.pyplot as plt
  2. # 1. 创建画布
  3. plt.figure(figsize=(10, 10), dpi=100)
  4. x = [1, 2, 3, 4, 5, 6, 7]
  5. y = x  # 定义 y 为 x 的值
  6. y2 = [i * 2 for i in x]  # 定义 y2 为 x 的两倍
  7. # 2. 绘制折线图
  8. plt.plot(x, y, label='y = x')  # 添加图例
  9. plt.plot(x, y2, label='y = 2x')  # 添加图例
  10. plt.grid(True, linestyle='--', alpha=0.5)
  11. # 3. 添加标题和标签
  12. plt.title('Test Title', fontsize=25)
  13. plt.xlabel('x', fontsize=25)
  14. plt.ylabel('y', fontsize=25)
  15. plt.xticks(x)
  16. plt.yticks([i * 2 for i in x])  # 为了更好地显示 y2 的值
  17. # 4. 添加图例
  18. plt.legend(fontsize=25)
  19. # 在每个数据点上显示值
  20. for i in range(len(x)):
  21.     plt.text(x[i], y[i], f'{y[i]}', ha='center', va='bottom')
  22.     plt.text(x[i], y2[i], f'{y2[i]}', ha='center', va='bottom')
  23. # 5. 保存图像
  24. plt.savefig("testss.jpg")
  25. # 6. 显示图像
  26. plt.show()
复制代码

设置标签文字和线条粗细



    使用 matplotlib 绘制折线图并设置样式
        plt.plot(datas,squares,linewidth=5) #设置线条宽度
        plt.title('Numbers',fontsize=24)
        plt.xlabel('datas',fontsize=14)
        plt.ylabel('squares',fontsize=14)

  1. import matplotlib.pyplot as plt
  2. datas=[1,2,3,4,5]
  3. squares=[1,4,9,16,25]
  4. plt.plot(datas,squares,linewidth=5) #设置线条宽度
  5. #设置图标标题,并在坐标轴上添加标签
  6. plt.title('Numbers',fontsize=24)
  7. plt.xlabel('datas',fontsize=14)
  8. plt.ylabel('squares',fontsize=14)
  9. plt.show()
复制代码

    办理标签、标题中的中文问题


        plt.rcParams['font.sans-serif'] = ['SimHei']

  1. import matplotlib.pyplot as plt
  2. datas=[1,2,3,4,5]
  3. squares=[1,4,9,16,25]
  4. plt.plot(datas,squares,linewidth=5) #设置线条宽度
  5. #设置中文乱码问题
  6. plt.rcParams['font.sans-serif'] = ['SimHei']
  7. #设置图标标题,并在坐标轴上添加标签
  8. plt.title('中文标题',fontsize=24)
  9. plt.xlabel('x 轴',fontsize=24)
  10. plt.ylabel('y 轴',fontsize=24)
  11. plt.savefig("testss.jpg")
  12. plt.show()
复制代码

 格式化字符

字符
形貌
'-'
实线样式
'--'
短横线样式
'-.'
点划线样式
':'
虚线样式
'.'
点标志
','
像素标志
'o'
圆标志
'v'
倒三角标志
'^'
正三角标志
'1'
下箭头标志
'2'
上箭头标志
字符
形貌
'3'
左箭头标志
'4'
右箭头标志
's'
正方形标志
'p'
五边形标志
'*'
星形标志
'h'
六边形标志 1
'H'
六边形标志 2
'+'
加号标志
'x'
X 标志
'D'
菱形标志
'd'
窄菱形标志
'_'
程度线标志
 
字符
颜色
'b'
蓝色
'g'
绿色
'r'
红色
'c'
青色
'm'
品红色
'y'
黄色
'k'
黑色
'w'
白色
 
  1. #不同种类不同颜色的线并添加图例
  2. x=np.linspace(0,10,100)
  3. plt.plot(x,x+0,'-g',label='-g') #实线 绿色
  4. plt.plot(x,x+1,'--c',label='--c') #虚线 浅蓝色
  5. plt.plot(x,x+2,'-.k',label='-.k') #点划线 黑色
  6. plt.plot(x,x+3,'-r',label='-r') #实线 红色
  7. plt.plot(x,x+4,'o',label='o') #点 默认是蓝色
  8. plt.plot(x,x+5,'x',label='x') #叉叉 默认是蓝色
  9. plt.plot(x,x+6,'dr',label='dr') #砖石 红色
  10. #添加图例右下角 lower right 左上角 upper left 边框 透明度 阴影 边框宽度
  11. plt.legend(loc='lower right',fancybox=True,framealpha=1,shadow=True,borderpad=1)
  12. plt.savefig("testss.jpg")
  13. plt.show()
复制代码

 折线图

绘制直线

  1. import matplotlib.pyplot as plt
  2. #将(0,1)点和(2,4)连起来
  3. plt.plot([0,2],[1,4])
  4. plt.show()
复制代码
 

绘制折线

以折线的上升或下降来表示统计数量的增减变革的统计图
特点:可以大概显示数据的变革趋势,反映事物的变革环境。(变革)
plt.plot(x, y)
  1. import matplotlib.pyplot as plt
  2. x=[1,2,3,4,5]
  3. y=[1,4,9,16,25]
  4. plt.plot(x,y)
  5. plt.savefig("testss.jpg")
  6. plt.show()
复制代码
 

绘制函数图像

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. x=np.linspace(0,10,100)
  4. sin_y=np.sin(x)
  5. #绘制正弦曲线
  6. plt.plot(x,sin_y)
  7. #绘制余弦曲线
  8. cos_y=np.cos(x)
  9. plt.plot(x,cos_y)
  10. plt.savefig("testss.jpg")
  11. plt.show()
复制代码
 

散点图

散点图:用两组数据构成多个坐标点,考察坐标点的分布,判定两变量之间是否存在某种关联或总结坐标点的分布模式。
特点:判定变量之间是否存在数量关联趋势,展示离群点(分布规律)
 plt.scatter(x, y)
  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. x = [1, 2, 3, 4, 5]
  4. y = [2, 3, 5, 7, 11]
  5. plt.scatter(x, y, color='red')  # 绘制红色散点图
  6. plt.title("Simple Scatter Plot")  # 设置图表标题
  7. plt.xlabel("X-axis")  # 设置X轴标签
  8. plt.ylabel("Y-axis")  # 设置Y轴标签
  9. plt.savefig("testss.jpg")
  10. plt.show()
复制代码
 
  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. # 画 10 种大小, 100 种颜色的散点图
  4. np.random.seed(0)
  5. x=np.random.rand(100)
  6. y=np.random.rand(100)
  7. #生成一个包含100个随机颜色值的数组,并将其赋值给变量colors。这些颜色值将用于散点图中每个点的颜色。
  8. colors=np.random.rand(100)
  9. size=np.random.rand(100)*1000
  10. plt.scatter(x,y,c=colors,s=size,alpha=0.7)
  11. plt.show()
  12. plt.savefig("testss.jpg")
  13. plt.show()
复制代码
 

 
柱状图

柱状图:排列在工作表的列或行中的数据可以绘制到柱状图中。
特点:绘制连离散的数据,可以大概一眼看出各个数据的大小,比较数据之间的差别。(统计/对比)
plt.bar(x, width, align='center', **kwargs) 
  1. Parameters:   
  2. x : 需要传递的数据
  3. width : 柱状图的宽度
  4. align : 每个柱状图的位置对齐方式
  5.     {'center', 'edge'}, optional, default: 'center'
  6. **kwargs :
  7. color:选择柱状图的颜色
复制代码
  1. x = [str(i) for i in "abcde"]
  2. y = [3,6,1,8,2]
  3. plt.bar(x,y, color='r')
  4. plt.show()
复制代码
 

饼状图

plt.pie(x, labels=,autopct=,colors)
  1. Parameters:  
  2. x:数量,自动算百分比
  3. labels:每部分名称
  4. autopct:占比显示指定%1.2f%%
  5. colors:每部分颜色
复制代码
  1. sizes = [25, 35, 25, 15]
  2. labels = ['Category A', 'Category B', 'Category C', 'Category D']
  3. plt.pie(sizes, labels=labels, autopct='%1.1f%%')  # 绘制饼图,显示百分比
  4. plt.title("Simple Pie Chart")  # 设置图表标题
  5. plt.show()  # 显示图表
复制代码
 

直方图

matplotlib.pyplot.hist(x, bins=None)
Parameters: x : 需要传递的数据 bins : 组距
提示:bins=10是把数据分成10组显示,但是对于数据来说要分成11个数,因为11个数可以隔成10个区间
  1. x = np.random.randn(150)  # 画正太分布图
  2. # x = np.linspace(0,150, 100)
  3. # x = np.random.randint(0,150, 11)
  4. # plt.hist(x)
  5. plt.hist(x, bins=10, color='y', alpha=0.5, rwidth=0.85)  # 装箱的操作,将 10 个柱装到一起及修改柱的宽度
  6. plt.show()
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4