python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录

马肤

温馨提示:这篇文章已超过411天没有更新,请注意相关的内容是否还可用!

摘要:本文介绍了Python中常用的绘图库matplotlib的使用方法。通过记录实际操作过程,包括安装、导入、绘制基本图形、自定义图表样式等步骤,让读者了解matplotlib的基本操作和常用功能。该库功能强大,易于使用,是Python数据可视化的重要工具之一。使用matplotlib,可以方便地绘制各种类型的图表,包括折线图、散点图、柱状图等,为数据分析、科学计算和机器学习的可视化提供了有力的支持。

本博文来自于网络收集,如有侵权请联系删除

使用matplotlib绘图

  • 1 常用函数汇总
    • 1.1 plot
    • 1.2 legend
    • 1.3 scatter
    • 1.4 xlim
    • 1.5 xlabel
    • 1.6 grid
    • 1.7 axhline
    • 1.7 axvspan
    • 1.8 annotate
    • 1.9 text
    • 1.10 title
    • 2 常见图形绘制
      • 2.1 bar——柱状图
      • 2.2 barh——条形图
      • 2.3 hist——直方图
        • 堆积直方图
        • 阶梯型直方图
        • 2.4 pie——饼图
          • 示例1
          • 示例2
          • 内嵌环饼形图
          • 2.5 polar——极线图
          • 2.6 scatter——气泡图
          • 2.7 stem——棉棒图
          • 2.8 boxplot——箱线图
            • 示例1
            • 示例2
            • 2.9 errorbar——误差棒图
            • 3 常用统计图
              • 3.1 堆积柱状图
              • 3.2 堆积条形图
              • 3.3 并列柱状图
              • 3.4 并列条形图
              • 3.5 堆积折线图
              • 3.6 间断条形图
              • 3.7 阶梯图

                matplotlib的具体用法 官网的介绍是最全的,此处只针对平时常用的绘图进行了记录

                1 常用函数汇总

                1.1 plot

                reference:https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html

                函数:plt.plot(x, y, c=‘r’, marker=‘o’, ls=‘-’, lw=1, ms=1, label=‘line1’)

                参数:

                • x: x轴上的数值
                • y: y轴上的数值
                • marker:点的形状
                • c: color, 颜色
                • ls: Line Styles,如,‘-’,‘–’,‘-.’,‘:’
                • lw: linewidth,线条宽度
                • label: 标记图形内容的标签文本

                  注,plt.plot(x, y, ‘r^:’, lw=1, ms=5, label=‘line1’)

                  点的颜色、形状、线型通常写在一起,如

                  label需要与plt.legend配合使用,

                  1.2 legend

                  reference:https://matplotlib.org/stable/api/legend_api.html

                  函数:plt.legend(loc=‘best’)

                  参数:

                  • loc:图例在途中的位置,如,‘upper right’, ‘lower left’, '‘upper center’'等

                    代码示例

                    import matplotlib.pyplot as plt
                    import numpy as np
                    x = np.linspace(0.05, 10, 1000)
                    y = np.sin(x)
                    plt.plot(x, y, marker='o', ls='-', c='r', lw=1, ms=1, label='line1')
                    # plt.plot(x, y, 'r^:', lw=1, ms=5, label='line1')
                    plt.legend(loc='best')
                    plt.show()
                    

                    1.3 scatter

                    函数:plt.scatter(x, y, c=‘b’, label=‘scatter1’)

                    参数:

                    • x: x轴上的数值
                    • y: y轴上的数值
                    • c:颜色
                    • label: 标记图形内容的标签文本
                      import matplotlib.pyplot as plt
                      import numpy as np
                      x = np.linspace(0.05, 10, 50)
                      y = np.sin(x)
                      y2 = np.cos(x)
                      plt.scatter(x, y, c='b', label='scatter1')
                      plt.scatter(x, y2, c='r', label='scatter1')
                      plt.legend()
                      plt.show()
                      

                      python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第1张

                      1.4 xlim

                      函数:plt.xlim(xmin, xmax)

                      参数:

                      • xmin: x轴上的最小值
                      • ymin: x轴上的最大值
                      • 平移性:plt.ylim(ymin, ymax)

                        1.5 xlabel

                        函数:plt.xlabel(string)

                        参数:

                        • string: 标签文本内容
                        • 平移性:plt.ylabel(string)

                          1.6 grid

                          函数:plt.grid(linestyle=‘:’, color="r)

                          参数:

                          • linestyle: 网格线的线条风格
                          • color: 网格线的线条颜色

                            1.7 axhline

                            绘制平行与x轴的水平参考线

                            函数:plt.axhline(y=0, c=‘b’, ls=‘–’, lw=2)

                            参数:

                            • y: 水平参考线的出发点
                            • c: 参考线的线条颜色
                            • ls: 参考线的线条风格
                            • lw: 参考线的线条宽度
                            • 平移性: plt.axvline(), 绘制平行与y轴的参考线

                              1.7 axvspan

                              绘制垂直于x轴的参考区域。

                              函数:plt.axvspan(xmin=1, xmax=2, facecolor=‘y’, alpha=0.3)

                              参数:

                              • xmin: 参考区域的起始位置。
                              • ymin: 参考区域的终止位置。
                              • facecolor: 参看区域的填充颜色。
                              • alpha: 参考区域的填充颜色的透明度。
                              • 平移性: axhspan()
                                import numpy as np
                                from matplotlib import pyplot as plt
                                x = np.linspace(0.05, 10, 1000)
                                y = np.sin(x)
                                plt.plot(x, y, ls='-.', c="c", label="sin(x)")
                                plt.legend()
                                plt.axvspan(xmin=4.0, xmax=6.0, facecolor="y", alpha=0.3)
                                plt.axhspan(ymin=0.0, ymax=0.5, facecolor="y", alpha=0.3)
                                plt.show()
                                

                                python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第2张

                                1.8 annotate

                                添加图形内容细节的指向型注释文本。

                                函数:plt.annotate(“maximum”, xy=(np.pi / 2, 1), xytext=((np.pi / 2) + 1, .8), weight=“bold”, color=‘b’, arrowprops=dict(arrowstyle=“->”, connectionstyle=“arc3”, color=“b”))

                                参数:

                                • string: 图形内容的注释文本。
                                • xy: 被注释图形内容的位置坐标。
                                • xytext: 注释文本的位置坐标。
                                • weight: 注释文本的字体粗细风格。
                                • color: 注释文本的字体颜色。
                                • arrowprops: 指示被注释内容的箭头的属性字典。
                                  import matplotlib.pyplot as plt
                                  import numpy as np
                                  x = np.linspace(0.05, 10, 1000)
                                  y = np.sin(x)
                                  plt.plot(x, y, ls="-.", lw=2, c="g", label='sin(x)')
                                  plt.legend()
                                  plt.annotate("maximum", xy=(np.pi / 2, 1), xytext=((np.pi / 2) + 1, .8), weight="bold", color='black',
                                               arrowprops=dict(arrowstyle="->", connectionstyle="arc3", color="r"))
                                  plt.show()
                                  

                                  python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第3张

                                  1.9 text

                                  添加图形内容细节的无指向型注释文本

                                  函数:plt.text(4, 0.1, “y=sin(x)”, weight=“bold”, color=“b”)

                                  参数:

                                  • x: 注释文本内容所在位置的横坐标
                                  • y: 注释文本内容所在位置的纵坐标
                                  • string: 注释文本内容
                                  • weight: 注释文本内容的粗细风格
                                  • color: 注释文本内容的字体颜色
                                    import matplotlib.pyplot as plt
                                    import numpy as np
                                    x = np.linspace(0.05, 10, 1000)
                                    y = np.sin(x)
                                    plt.plot(x, y, ls='-.', lw=2, c="c", label="sin(x)")
                                    plt.legend()
                                    plt.text(4, 0.1, "y=sin(x)", weight="bold", color="b")
                                    plt.show()
                                    

                                    python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第4张

                                    1.10 title

                                    添加图形内容的标题

                                    函数:plt.title(string)

                                    参数:

                                    • string: 图形内容的标题文本

                                      2 常见图形绘制

                                      2.1 bar——柱状图

                                      函数:plt.bar(x, y, align=“center”, color=“c”, tick_label=x_label, hatch=“/”)

                                      参数:

                                      • x: 柱状图中的柱体标签值。
                                      • y: 柱状图中的柱体高度。
                                      • align: 柱体对齐方式
                                      • color: 柱体颜色
                                      • tick_label: 刻度标签值
                                      • alpha: 柱体的透明度
                                      • hatch: 柱体的填充样式,如"/", “\”, “|”, "-"等,符号字符串的符号数量越多,柱体的几何图形的密集程度就越高。
                                        import matplotlib as mpl
                                        import matplotlib.pyplot as plt
                                        from plotly.figure_factory import np
                                        mpl.rcParams["font.sans-serif"] = ["SimHei"]
                                        mpl.rcParams["axes.unicode_minus"] = False
                                        x = [i for i in range(0, 10, 1)]
                                        y = np.random.randint(1, 20, size=10)
                                        x_label = [chr(i) for i in range(97, 97+10, 1)]
                                        plt.bar(x, y, align="center", color="c", tick_label=x_label, hatch="/")
                                        plt.xlabel("x")
                                        plt.ylabel("y")
                                        plt.show()
                                        

                                        python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第5张

                                        2.2 barh——条形图

                                        import matplotlib as mpl
                                        import matplotlib.pyplot as plt
                                        from plotly.figure_factory import np
                                        mpl.rcParams["font.sans-serif"] = ["SimHei"]
                                        mpl.rcParams["axes.unicode_minus"] = False
                                        x = [i for i in range(0, 10, 1)]
                                        y = np.random.randint(1, 20, size=10)
                                        x_label = [chr(i) for i in range(97, 97+10, 1)]
                                        plt.barh(x, y, align="center", color="c", tick_label=x_label, hatch="/")
                                        plt.xlabel("x")
                                        plt.ylabel("y")
                                        plt.show()
                                        

                                        python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第6张

                                        2.3 hist——直方图

                                        直方图是用来展现连续型数据分布特征的统计图形,利用直方图可直观地分析出数据的集中趋势和波动情况。

                                        函数:plt.hist(x)

                                        参数:

                                        • x: 连续型数据输入值
                                        • bins: 用于确定柱体的个数或是柱体边缘范围
                                        • color: 柱体的颜色
                                        • histtype: 柱体类型
                                        • label: 图例内容
                                        • rwidth: 柱体宽度
                                          import matplotlib as mpl
                                          import matplotlib.pyplot as plt
                                          from plotly.figure_factory import np
                                          mpl.rcParams["font.sans-serif"] = ["SimHei"]
                                          mpl.rcParams["axes.unicode_minus"] = False
                                          x = np.random.randint(0, 10, 100)
                                          y = range(0, 6, 1)
                                          plt.hist(x, bins=y, color='c', histtype="bar", rwidth=1, alpha=0.6)
                                          plt.xlabel("x")
                                          plt.ylabel("y")
                                          plt.show()
                                          

                                          python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第7张

                                          除最后一个柱体的数据范围是闭区间,其它柱体的数据范围都是左闭右开区间。

                                          总结,柱状图与直方图的区别:

                                          直方图描述的是连续型数据的分布,柱状图描述的是离散型数据分布;柱状图的柱体之间有空隙,直方图的柱体之间无空隙。

                                          堆积直方图

                                          import matplotlib as mpl
                                          import matplotlib.pyplot as plt
                                          from plotly.figure_factory import np
                                          mpl.rcParams["font.sans-serif"] = ["SimHei"]
                                          mpl.rcParams["axes.unicode_minus"] = False
                                          x1 = np.random.randint(0, 10, 100)
                                          x2 = np.random.randint(0, 10, 100)
                                          y = range(0, 10, 1)
                                          plt.hist([x1, x2], bins=y, color=['c', 'y'], histtype="bar", rwidth=1, stacked=True, alpha=0.6)
                                          plt.xlabel("x")
                                          plt.ylabel("y")
                                          plt.show()
                                          

                                          python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第8张

                                          阶梯型直方图

                                          将hist()的histtype改为stepfilled即可绘制阶梯型直方图

                                          import matplotlib as mpl
                                          import matplotlib.pyplot as plt
                                          from plotly.figure_factory import np
                                          mpl.rcParams["font.sans-serif"] = ["SimHei"]
                                          mpl.rcParams["axes.unicode_minus"] = False
                                          x1 = np.random.randint(0, 10, 100)
                                          x2 = np.random.randint(0, 10, 100)
                                          y = range(0, 10, 1)
                                          labels = ['a', 'b']
                                          plt.hist([x1, x2], bins=y, color=['c', 'y'], histtype="stepfilled", rwidth=1, stacked=True, label=labels)
                                          plt.xlabel("x")
                                          plt.ylabel("y")
                                          plt.legend()
                                          plt.show()
                                          

                                          python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第9张

                                          2.4 pie——饼图

                                          绘制不同类型数据的百分比,通过饼图可以清楚地观察数据的占比情况。

                                          函数:plt.pie(soldNums, explode=explode, labels=kinds, autopct=“%3.1f%%”, startangle=45, shadow=True, colors=colors)

                                          参数:

                                          • soldNums: 相当于x,并不是参数名称,要绘制的百分比列表
                                          • explode:饼片边缘偏离半径的百分比
                                          • labels: 标记每份饼片的文本标签内容
                                          • autopct: 饼片文本标签内容对应的数值百分比样式
                                          • startangle: 从x轴作为起始位置,第一个饼片逆时针旋转的角度
                                          • shadow: 是否绘制饼片的阴影
                                          • colors: 饼片的颜色
                                          • 其它参数,pctdistance: 百分比数值的显示位置,以半径长度比例值作为显示位置依据
                                          • 其它参数,labeldistance: 标签值的显示位置,以半径长度比例值作为显示位置依据

                                            示例1

                                            import matplotlib.pyplot as plt
                                            import matplotlib as mpl
                                            mpl.rcParams["font.sans-serif"] = ["SimHei"]
                                            mpl.rcParams["axes.unicode_minus"] = False
                                            kinds = "a", "b", "c", "d"
                                            soldNums = [0.3, 0.2, 0.4, 0.1]
                                            colors = ['g', 'r', 'b', 'black']
                                            plt.pie(soldNums, labels=kinds, autopct="%3.2f%%", startangle=60, colors=colors)
                                            plt.title("不同类型占比")
                                            plt.show()
                                            

                                            python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第10张

                                            示例2

                                            import matplotlib.pyplot as plt
                                            import matplotlib as mpl
                                            mpl.rcParams["font.sans-serif"] = ["SimHei"]
                                            mpl.rcParams["axes.unicode_minus"] = False
                                            kinds = "a", "b", "c", "d"
                                            soldNums = [0.3, 0.2, 0.4, 0.1]
                                            colors = ['g', 'r', 'b', 'black']
                                            explode = (0.1, 0.1, 0.1, 0.1)
                                            plt.pie(soldNums, explode=explode, labels=kinds, autopct="%3.1f%%", startangle=45, shadow=True, colors=colors)
                                            plt.title("不同类型占比")
                                            plt.show()
                                            

                                            python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第11张

                                            内嵌环饼形图

                                            将饼图嵌套,可观察多组数据的比例分布

                                            import matplotlib.pyplot as plt
                                            import matplotlib as mpl
                                            mpl.rcParams["font.sans-serif"] = ["SimHei"]
                                            mpl.rcParams["axes.unicode_minus"] = False
                                            kinds = ["a", "b", "c", "d"]
                                            weight1 = [0.3, 0.2, 0.4, 0.1]
                                            weight2 = [0.2, 0.25, 0.35, 0.2]
                                            colors = ['g', 'r', 'b', 'black']
                                            outer_colors = colors
                                            inner_colors = colors
                                            wedges1, texts1, autotexts1 = plt.pie(weight1, autopct="%3.1f%%", radius=1, pctdistance=0.85, colors=outer_colors, textprops=dict(color="w"),
                                                    wedgeprops=dict(width=0.3, edgecolor="w"))
                                            wedges2, texts2, autotexts2 = plt.pie(weight2, autopct="%3.1f%%", radius=0.65, pctdistance=0.7, colors=inner_colors, textprops=dict(color="w"),
                                                    wedgeprops=dict(width=0.3, edgecolor="w"))
                                            plt.legend(wedges1, kinds, fontsize=12, title="比例", loc="best", bbox_to_anchor=(0.6, 0, 0.4, 1))
                                            plt.setp(autotexts1, size=12, weight="bold")
                                            plt.setp(autotexts2, size=12, weight="bold")
                                            plt.setp(texts1, size=12)
                                            plt.title("不同类型占比")
                                            plt.show()
                                            

                                            python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第12张

                                            2.5 polar——极线图

                                            在极坐标轴上绘制折线图

                                            函数:plt.plot(theta, r)

                                            参数:

                                            • theta: 每个标记所在射线与极径的夹角。
                                            • r: 每个标记到原点的距离。
                                              import matplotlib.pyplot as plt
                                              import numpy as np
                                              barSlices = 12
                                              theta = np.linspace(0, 2*np.pi, barSlices, endpoint=False)
                                              r = 30*np.random.rand(barSlices)
                                              plt.polar(theta, r, color="chartreuse", linewidth=2, marker="*", mfc="b", ms=10)
                                              plt.show()
                                              

                                              python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第13张

                                              2.6 scatter——气泡图

                                              二维数据借助气泡大小展示三维数据

                                              函数:plt.scatter(x, y)

                                              参数:

                                              • x: x轴上的数值。
                                              • y: y轴上的数值。
                                              • c: 散点标记的颜色。
                                              • cmap: 将浮点数映射成颜色的颜色映射表。
                                                import matplotlib.pyplot as plt
                                                import matplotlib as mpl
                                                import numpy as np
                                                a = np.random.randn(50)
                                                b = np.random.randn(50)
                                                plt.scatter(a, b, s=np.power(10*a+20*b, 2), c=np.random.rand(50), cmap=mpl.cm.RdYlBu, marker="o")
                                                plt.show()
                                                

                                                python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第14张

                                                2.7 stem——棉棒图

                                                绘制离散有序数据

                                                函数: plt.stem(x, y)

                                                参数:

                                                • x: 指定棉棒的x轴基线上的位置
                                                • y: 绘制棉棒的长度
                                                • linefmt: 棉棒的样式
                                                • markerfmt : 棉棒末端的样式
                                                • basefmt: 指定基线的样式
                                                  import matplotlib.pyplot as plt
                                                  import numpy as np
                                                  x = np.linspace(0.5, 2*np.pi, 20)
                                                  y = np.random.randn(20)
                                                  plt.stem(x, y, linefmt="-.", markerfmt="o", basefmt="-")
                                                  plt.show()
                                                  

                                                  python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第15张

                                                  2.8 boxplot——箱线图

                                                  箱线图是由一个箱体和一对箱须所组成的统计图形。箱体是由第一四分位数、中位数(第二四分位数)和第三分位数所组成的。在箱须的末端之外的数值可以理解为离群值。箱须是对一组数据范围的大致直观描述。

                                                  示例1

                                                  • x: 绘制箱线图的输入数据
                                                    import matplotlib.pyplot as plt
                                                    import numpy as np
                                                    x = np.random.randn(100)
                                                    plt.boxplot(x)
                                                    plt.xticks([1], ["x"])
                                                    plt.ylabel("y")
                                                    plt.grid(axis="y", ls=":", lw=1, color="black", alpha=0.5)
                                                    plt.show()
                                                    

                                                    python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第16张

                                                    示例2

                                                    函数:bplot = plt.boxplot(testList, whis=whis, widths=width, sym=“o”, labels=labels, patch_artist=True)

                                                    参数:

                                                    • testList: 绘制箱线图的输入数据
                                                    • whis: 四分位间距的倍数,用来确定箱须包含数据的范围大小
                                                    • widths: 设置箱体的宽度
                                                    • sym: 离群值的标记样式
                                                    • labels: 每一个数据集的刻度标签
                                                    • patch_artist: 是否给箱体添加颜色
                                                      import matplotlib as mpl
                                                      import matplotlib.pyplot as plt
                                                      import numpy as np
                                                      mpl.rcParams["font.sans-serif"] = ["SimHei"]
                                                      mpl.rcParams["axes.unicode_minus"]=False	# 显示负数
                                                      testA = np.random.randn(1000)
                                                      testB = np.random.randn(1000)
                                                      testList = [testA, testB]
                                                      labels = ["A", "B"]
                                                      colors = ["y", "g"]
                                                      whis = 1.6
                                                      width = 0.35
                                                      bplot = plt.boxplot(testList, whis=whis, widths=width, sym="o", labels=labels, patch_artist=True)
                                                      for patch, color in zip(bplot["boxes"], colors):
                                                          patch.set_facecolor(color)
                                                      plt.ylabel("随机数值")
                                                      plt.grid(axis="y", ls=":", lw=1, color="gray", alpha=0.4)
                                                      plt.show()
                                                      

                                                      python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第17张

                                                      2.9 errorbar——误差棒图

                                                      绘制y轴方向或是x轴方向的误差范围

                                                      函数:

                                                      • x: 数据点的水平位置
                                                      • y: 数据点的垂直位置
                                                      • yerr: y轴方向的数据点的误差计算方法
                                                      • xerr: x轴方向的数据点的误差计算方法
                                                        import matplotlib.pyplot as plt
                                                        import numpy as np
                                                        x = np.linspace(0.1, 1, 10)
                                                        y = np.exp(x)
                                                        plt.errorbar(x, y, fmt="bo:", yerr=0.2, xerr=0.05)
                                                        plt.xlim(0, 1.1)
                                                        plt.show()
                                                        

                                                        python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第18张

                                                        3 常用统计图

                                                        3.1 堆积柱状图

                                                        令函数bar中的参数bottom=y可输出堆积柱状图

                                                        import matplotlib as mpl
                                                        import matplotlib.pyplot as plt
                                                        mpl.rcParams["font.sans-serif"] = ["SimHei"]
                                                        mpl.rcParams["axes.unicode_minus"] = False
                                                        x = [i for i in range(5)]
                                                        y = [i for i in range(5)]
                                                        y1 = [1 for i in range(5)]
                                                        plt.bar(x, y, align="center", color="c", tick_label=["a", "b", "c", "d", "e"], label='y')
                                                        plt.bar(x, y1, align="center", bottom=y, color="g", tick_label=["a", "b", "c", "d", "e"], label='y1')
                                                        plt.xlabel("x")
                                                        plt.ylabel("y")
                                                        plt.legend()
                                                        plt.show()
                                                        

                                                        python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第19张

                                                        3.2 堆积条形图

                                                        令函数bar中的参数left=y可输出堆积柱状图

                                                        import matplotlib as mpl
                                                        import matplotlib.pyplot as plt
                                                        mpl.rcParams["font.sans-serif"] = ["SimHei"]
                                                        mpl.rcParams["axes.unicode_minus"] = False
                                                        x = [i for i in range(5)]
                                                        y = [i for i in range(5)]
                                                        y1 = [1 for i in range(5)]
                                                        plt.barh(x, y, align="center", color="c", tick_label=["a", "b", "c", "d", "e"], label='y')
                                                        plt.barh(x, y1, align="center", left=y, color="g", tick_label=["a", "b", "c", "d", "e"], label='y1')
                                                        plt.xlabel("x")
                                                        plt.ylabel("y")
                                                        plt.legend()
                                                        plt.show()
                                                        

                                                        python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第20张

                                                        3.3 并列柱状图

                                                        并列柱状图的只是单个柱状图的叠加而已,仅需注意叠加的柱状图的x的起始位置。

                                                        import matplotlib as mpl
                                                        import matplotlib.pyplot as plt
                                                        import numpy as np
                                                        mpl.rcParams["font.sans-serif"] = ["SimHei"]
                                                        mpl.rcParams["axes.unicode_minus"] = False
                                                        x = np.arange(5)
                                                        y = [i for i in range(5)]
                                                        y1 = [1 for i in range(5)]
                                                        bar_width = 0.35
                                                        tick_label = ["a", "b", "c", "d", "e"]
                                                        plt.bar(x, y, bar_width, align="center", color="c",  label='y', alpha=0.5)
                                                        plt.bar(x+bar_width, y1, bar_width, align="center", color="g", label='y1', alpha=0.5)
                                                        plt.xlabel("x")
                                                        plt.ylabel("y")
                                                        plt.legend()
                                                        plt.show()
                                                        

                                                        python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第21张

                                                        3.4 并列条形图

                                                        import matplotlib as mpl
                                                        import matplotlib.pyplot as plt
                                                        import numpy as np
                                                        mpl.rcParams["font.sans-serif"] = ["SimHei"]
                                                        mpl.rcParams["axes.unicode_minus"] = False
                                                        x = np.arange(5)
                                                        y = [i for i in range(5)]
                                                        y1 = [1 for i in range(5)]
                                                        bar_width = 0.35
                                                        tick_label = ["a", "b", "c", "d", "e"]
                                                        plt.barh(x, y, bar_width, align="center", color="c",  label='y', alpha=0.5)
                                                        plt.barh(x+bar_width, y1, bar_width, align="center", color="g", label='y1', alpha=0.5)
                                                        plt.xlabel("x")
                                                        plt.ylabel("y")
                                                        plt.legend()
                                                        plt.show()
                                                        

                                                        python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第22张

                                                        3.5 堆积折线图

                                                        堆积折线图是通过绘制不同数据集的折线图而产生的。堆积折线图是按照垂直方向上彼此堆叠且又不相互覆盖的排列顺序,绘制若干条折线图而形成的组合图形。

                                                        import matplotlib.pyplot as plt
                                                        import numpy as np
                                                        x = np.arange(1, 5, 1)
                                                        y = [i for i in range(4)]
                                                        y1 = [1 for i in range(4)]
                                                        y2 = [2, 3, 1, 4]
                                                        labels = ['y', 'y1', 'y2']
                                                        colors = ['b', 'g', 'c', 'yellow']
                                                        plt.stackplot(x, y, y1, y2, labels=labels, colors=colors)
                                                        plt.legend(loc="best")
                                                        plt.show()
                                                        

                                                        python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第23张

                                                        3.6 间断条形图

                                                        间断条形图是在条形图的基础上绘制而成的,主要用来可视化定向数据的相同指标在时间维度上的指标值的变化情况,实现定性数据的相同指标的变化情况的有效直观比较。
                                                        
                                                        import matplotlib as mpl
                                                        import matplotlib.pyplot as plt
                                                        import numpy as np
                                                        mpl.rcParams["font.sans-serif"]=["SimHei"]
                                                        mpl.rcParams["axes.unicode_minus"]=False
                                                        plt.broken_barh([(10, 15), (35, 20), (60, 5)], (12, 8), facecolors="yellow")
                                                        plt.broken_barh([(5, 10), (20, 2), (28, 6), (40, 3)], (2, 8), facecolors=("r", 'b', 'g', 'c'))
                                                        plt.xlim(0, 70)
                                                        plt.ylim(0, 20)
                                                        plt.xlabel("播放时间")
                                                        plt.xticks(np.arange(0, 70, 10))
                                                        plt.yticks([16, 6], ["公益性广告", "食品类广告"])
                                                        plt.grid(ls=":", lw=1, color="gray")
                                                        plt.title("不同广告的播放时长")
                                                        plt.show()
                                                        

                                                        python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第24张

                                                        (10, 15)表示从起点是x轴的数值为10的位置起,沿x轴正方向移动15个单位。

                                                        (12, 8)表示从起点是y轴的数值为10的位置起,沿y轴正方向移动8个单位,即柱体的高度和垂直起始位置。

                                                        3.7 阶梯图

                                                        阶梯图常用中时间序列数据的可视化任务中,表示时序数据的波动周期和规律

                                                        import matplotlib.pyplot as plt
                                                        import numpy as np
                                                        x = np.linspace(1, 7, 7)
                                                        y = np.sin(x)
                                                        plt.step(x, y, color="r", where="pre", lw=2)
                                                        plt.xlim(0, 8)
                                                        plt.xticks(np.arange(1,7,1))
                                                        plt.ylim(-1.1, 1.1)
                                                        plt.show()
                                                        

                                                        python绘图matplotlib——使用记录1,Python Matplotlib绘图入门记录 第25张

                                                        where的取值"pre”, 表示x轴上的每个数据点对应的y轴上的数值向左侧绘制水平线直x轴上的此数据点的左侧相邻数据点为止,取值是按照左开右闭区间进行数据点选取的。除“pre”外也可取值"post", 表示在x轴上的相邻数据点的取值是按照左闭右开区间进行数据点选取的。


0
收藏0
文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

相关阅读

  • 【研发日记】Matlab/Simulink自动生成代码(二)——五种选择结构实现方法,Matlab/Simulink自动生成代码的五种选择结构实现方法(二),Matlab/Simulink自动生成代码的五种选择结构实现方法详解(二)
  • 超级好用的C++实用库之跨平台实用方法,跨平台实用方法的C++实用库超好用指南,C++跨平台实用库使用指南,超好用实用方法集合,C++跨平台实用库超好用指南,方法与技巧集合
  • 【动态规划】斐波那契数列模型(C++),斐波那契数列模型(C++实现与动态规划解析),斐波那契数列模型解析与C++实现(动态规划)
  • 【C++】,string类底层的模拟实现,C++中string类的模拟底层实现探究
  • uniapp 小程序实现微信授权登录(前端和后端),Uniapp小程序实现微信授权登录全流程(前端后端全攻略),Uniapp小程序微信授权登录全流程攻略,前端后端全指南
  • Vue脚手架的安装(保姆级教程),Vue脚手架保姆级安装教程,Vue脚手架保姆级安装指南,Vue脚手架保姆级安装指南,从零开始教你如何安装Vue脚手架
  • 如何在树莓派 Raspberry Pi中本地部署一个web站点并实现无公网IP远程访问,树莓派上本地部署Web站点及无公网IP远程访问指南,树莓派部署Web站点及无公网IP远程访问指南,本地部署与远程访问实践,树莓派部署Web站点及无公网IP远程访问实践指南,树莓派部署Web站点及无公网IP远程访问实践指南,本地部署与远程访问详解,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南。
  • vue2技术栈实现AI问答机器人功能(流式与非流式两种接口方法),Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法探究,Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法详解
  • 发表评论

    快捷回复:表情:
    评论列表 (暂无评论,0人围观)

    还没有评论,来说两句吧...

    目录[+]

    取消
    微信二维码
    微信二维码
    支付宝二维码