python使用Matplotlib绘制多种常见图形

 更新时间:2022年05月18日 16:22:32   作者:​ Python研究者   ​  
这篇文章主要介绍了python使用Matplotlib绘制多种常见图形,文章围绕主题展开详细的用Matplotlib绘制内容,需要的小伙伴可以参考一下

Matplotlib官网 如果想了解更多可查看官网。

import numpy as np 
import matplotlib.pyplot as plt
%matplotlib inline #写了这个就可以不用写plt.show()
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
X = np.linspace(0, 2*np.pi,100)# 均匀的划分数据
Y = np.sin(X)
Y1 = np.cos(X)
plt.title("Hello World!!")
plt.plot(X,Y)
plt.plot(X,Y1)

X = np.linspace(0, 2*np.pi,100)  
Y = np.sin(X)
Y1 = np.cos(X)
plt.subplot(211) # 等价于 subplot(2,1,1)  #一个图版画两个图
plt.plot(X,Y)
plt.subplot(212)
plt.plot(X,Y1,color = 'r')

柱状图

data = [5,25,50,20]
plt.bar(range(len(data)),data)

水平绘制柱状图

data = [5,25,50,20]
plt.barh(range(len(data)),data)

多个柱状图

data = [[5,25,50,20],
        [4,23,51,17],
        [6,22,52,19]]
X = np.arange(4)
plt.bar(X + 0.00, data[0], color = 'b', width = 0.25,label = "A")
plt.bar(X + 0.25, data[1], color = 'g', width = 0.25,label = "B")
plt.bar(X + 0.50, data[2], color = 'r', width = 0.25,label = "C")
# 显示上面设置的 lable
plt.legend()

叠加型柱状图

data = [[5,25,50,20],
        [4,23,51,17],
        [6,22,52,19]]
X = np.arange(4)
plt.bar(X, data[0], color = 'b', width = 0.25)
plt.bar(X, data[1], color = 'g', width = 0.25,bottom = data[0])
plt.bar(X, data[2], color = 'r', width = 0.25,bottom = np.array(data[0]) + np.array(data[1]))
plt.show()

散点图

N = 50
x = np.random.rand(N)
y = np.random.rand(N)
plt.scatter(x, y)

气泡图

N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.randn(N) # 颜色可以用数值表示
area = np.pi * (15 * np.random.rand(N))**2  #  调整大小
plt.scatter(x, y, c=colors, alpha=0.5, s = area)

N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.randint(0,2,size =50)
plt.scatter(x, y, c=colors, alpha=0.5,s = area)

直方图

a = np.random.rand(100)
plt.hist(a,bins= 20)
plt.ylim(0,15)

a = np.random.randn(10000)
plt.hist(a,bins=50)
plt.title("标准正太分布")

箱线图

x = np.random.randint(20,100,size = (30,3))
plt.boxplot(x)
plt.ylim(0,120)
# 在x轴的什么位置填一个 label,我们这里制定在 1,2,3 位置,写上 A,B,C
plt.xticks([1,2,3],['A','B','C'])
plt.hlines(y = np.median(x,axis = 0)[0] ,xmin =0,xmax=3)

添加文字描述

# 设置画布颜色为 blue
fig, ax = plt.subplots(facecolor='blue')
# y 轴数据
data = [[5,25,50,20],
        [4,23,51,17],
        [6,22,52,19]]
X = np.arange(4)
plt.bar(X+0.00, data[0], color = 'darkorange', width = 0.25,label = 'A')
plt.bar(X+0.25, data[1], color = 'steelblue', width = 0.25,label="B")
plt.bar(X+0.50, data[2], color = 'violet', width = 0.25,label = 'C')
ax.set_title("Figure 2")
plt.legend()
 
# 添加文字描述 方法一
W = [0.00,0.25,0.50]
for i in range(3):
    for a,b in zip(X+W[i],data[i]):
        plt.text(a,b,"%.0f"% b,ha="center",va= "bottom")
plt.xlabel("Group")
plt.ylabel("Num")
plt.text(0.0,48,"TEXT")

添加文字描述 方法二

X = np.linspace(0, 2*np.pi,100)# 均匀的划分数据
Y = np.sin(X)
Y1 = np.cos(X)
plt.plot(X,Y)
plt.plot(X,Y1)
plt.annotate('Points',
         xy=(1, np.sin(1)),
         xytext=(2, 0.5), fontsize=16,
         arrowprops=dict(arrowstyle="->"))

plt.title("这是一副测试图!")

多个图形描绘 subplots

%pylab inline
pylab.rcParams['figure.figsize'] = (10, 6) # 调整图片大小
# np.random.seed(19680801)
n_bins = 10
x = np.random.randn(1000, 3)
fig, axes = plt.subplots(nrows=2, ncols=2)
ax0, ax1, ax2, ax3 = axes.flatten()
colors = ['red', 'tan', 'lime']
ax0.hist(x, n_bins, normed=1, histtype='bar', color=colors, label=colors)
ax0.legend(prop={'size': 10})
ax0.set_title('bars with legend')
ax1.hist(x, n_bins, normed=1, histtype='bar', stacked=True)
ax1.set_title('stacked bar')
ax2.hist(x, n_bins, histtype='step', stacked=True, fill=False)
ax2.set_title('stack step (unfilled)')
# Make a multiple-histogram of data-sets with different length.
x_multi = [np.random.randn(n) for n in [10000, 5000, 2000]]
ax3.hist(x_multi, n_bins, histtype='bar')
ax3.set_title('different sample sizes')

使用Pandas 绘图

import pandas as pd
df = pd.DataFrame(np.random.rand(50, 2), columns=['a', 'b'])
# 散点图
df.plot.scatter(x='a', y='b')

df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])
# 绘制柱状图
df.plot.bar()

# 堆积的柱状图
df.plot.bar(stacked=True)

# 水平的柱状图
df.plot.barh(stacked=True)

df = pd.DataFrame({'a':np.random.randn(1000)+1,'b':np.random.randn(1000),'c':np.random.randn(1000) - 1}, columns=['a', 'b', 'c'])
# 直方图
df.plot.hist(bins=20)

# 箱线图
df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])
df.plot.box()

到此这篇关于python使用Matplotlib绘制多种常见图形的文章就介绍到这了,更多相关Matplotlib绘制图图形内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中的条件判断语句与循环语句用法小结

    Python中的条件判断语句与循环语句用法小结

    这篇文章主要介绍了Python中的条件判断语句与循环语句用法小结,条件语句和循环语句是Python程序流程控制的基础,需要的朋友可以参考下
    2016-03-03
  • python处理DICOM并计算三维模型体积

    python处理DICOM并计算三维模型体积

    这篇文章主要为大家详细介绍了python处理DICOM,并计算三维模型体积,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • 使用 Python 合并多个格式一致的 Excel 文件(推荐)

    使用 Python 合并多个格式一致的 Excel 文件(推荐)

    这篇文章主要介绍了使用 Python 合并多个格式一致的 Excel 文件,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • 使用python实现画AR模型时序图

    使用python实现画AR模型时序图

    今天小编就为大家分享一篇使用python实现画AR模型时序图,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 2款Python内存检测工具介绍和使用方法

    2款Python内存检测工具介绍和使用方法

    这篇文章主要介绍了2款Python内存检测工具介绍和使用方法,可以用来分析Python程序的内存使用量,需要的朋友可以参考下
    2014-06-06
  • pandas实现数据合并的示例代码

    pandas实现数据合并的示例代码

    本文主要介绍了pandas实现数据合并的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • conda虚拟环境下使用pyinstaller打包程序为exe文件全过程

    conda虚拟环境下使用pyinstaller打包程序为exe文件全过程

    pyinstaller是一个支持跨平台使用的第三方库,它可以将脚本执行所需的模块和库,自动分析、收集并生成一个文件夹或者可执行文件,这篇文章主要给大家介绍了关于conda虚拟环境下使用pyinstaller打包程序为exe文件的相关资料,需要的朋友可以参考下
    2023-12-12
  • Python解决N阶台阶走法问题的方法分析

    Python解决N阶台阶走法问题的方法分析

    这篇文章主要介绍了Python解决N阶台阶走法问题的方法,简单描述了走台阶问题,并结合实例形式分析了Python使用递归与递推算法解决走台阶问题的相关操作技巧,需要的朋友可以参考下
    2017-12-12
  • Python pytest自动化测试库十个强大用法示例

    Python pytest自动化测试库十个强大用法示例

    本文将介绍Python的pytest库的10个强大用法,并提供相应的代码示例,帮助你更好地理解和应用单元测试,它提供了许多高级功能和便利的用法,能够让我们更轻松地编写和执行单元测试
    2024-01-01
  • python实用的快捷语法技巧大全

    python实用的快捷语法技巧大全

    初识Python语言,觉得python满足了我上学时候对编程语言的所有要求,下面这篇文章主要给大家介绍了关于python实用的快捷语法技巧的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-02-02

最新评论