python通过Matplotlib绘制常见的几种图形(推荐)

目录
  • python通过Matplotlib绘制常见的几种图形
    • 一、使用matplotlib对几种常见的图形进行绘制
    • 1、柱状图
    • 2、水平绘制柱状图
    • 3、多个柱状图
    • 4、叠加型柱状图
    • 5、散点图
    • 6、气泡图
    • 7、直方图
    • 8、箱线图
  • 二、添加文字描述
    • 1、文字描述一
    • 2、文字描述二
  • 三、多个图形描绘 subplots
  • 四、使用Pandas 绘图
    • 1、散点图
    • 2、绘制柱状图
    • 3、堆积的柱状图
    • 4、水平的柱状图
    • 5、直方图
    • 6、箱线图

python通过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')

1、柱状图

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

2、水平绘制柱状图

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

3、多个柱状图

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()

4、叠加型柱状图

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()

5、散点图

N = 50
x = np.random.rand(N)
y = np.random.rand(N)

plt.scatter(x, y)

6、气泡图

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)

7、直方图

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("标准正太分布")

8、箱线图

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)

二、添加文字描述

1、文字描述一

# 设置画布颜色为 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")

2、文字描述二

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 绘图

1、散点图

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

2、绘制柱状图

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

3、堆积的柱状图

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

4、水平的柱状图

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

5、直方图

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)

6、箱线图

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

到此这篇关于python通过Matplotlib绘制常见的几种图形(推荐)的文章就介绍到这了,更多相关python Matplotlib内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 教你用Python matplotlib库制作简单的动画

    matplotlib制作简单的动画 动画即是在一段时间内快速连续的重新绘制图像的过程. matplotlib提供了方法用于处理简单动画的绘制: import matplotlib.animation as ma def update(number): pass # 每隔30毫秒,执行一次update ma.FuncAnimation( mp.gcf(), # 作用域当前窗体 update, # 更新函数的函数名 interval=30 # 每隔30毫秒,执行一次update ) 案例1: 随机生

  • 用Python的绘图库(matplotlib)绘制小波能量谱

    时间小波能量谱 反映信号的小波能量沿时间轴的分布. 由于小波变换具有等距效应,所以有: 式中 表示信号强度,对于式①在平移因子b方向上进行加权积分 式中 代表时间-小能量谱 尺度小波能量谱 反映信号的小波能量随尺度的变化情况. 同理,对式①在尺度方向上进行加权积分: 式中 连续小波变换 连续小波变换的结果是一个小波系数矩阵,随着尺度因子和位移因子变化.然后将系数平方后得到小波能量,把每个尺度因子对应的所有小波能量进行叠加,那么就可以得到随尺度因子变换的小波能量谱曲线.把尺度换算成频率后,这条曲线

  • python数据可视化之matplotlib.pyplot基础以及折线图

    不论是数据挖掘还是数据建模,都免不了数据可视化的问题.对于Python来说,Matplotlib是最著名的绘图库,它主要用于二维绘图,当然它也可以进行简单的三维绘图(基于spyder). - 模块引用 import matplotlib.pyplot as plt #引用画图库中的pyplot模块 -折线条图 语法 import matplotlib.pyplot as plt data=[1,2,3,4,5,4,2,4,6,7] #随便创建了一个数据 plt.plot(data) #引用画图库

  • Python的Matplotlib库图像复现学习

    目录 总结 from pylab import * n = 256 X = np.linspace(-np.pi,np.pi,n,endpoint=True) Y = np.sin(2*X) plt.axes([0.025,0.025,0.95,0.95]) plt.plot (X, Y+1, color='blue', alpha=1.00) plt.fill_between(X,1,Y+1,color='b',alpha=.25) plt.plot (X, Y-1, color='blue'

  • Python绘图之详解matplotlib

    一.matplotlib介绍 matplotlib是python从matlab继承的绘图库,可以满足大部分的日常使用,是目前最流行的底层绘图库. 二.matplotlib的使用 (一)导入模块[中文显示] 显示中文方面mac和windows根据自己电脑系统选一个即可 import matplotlib.pyplot as plt # 显示中文(mac) from matplotlib.font_manager import FontManager fm = FontManager() mat_f

  • python中Matplotlib绘制直线的实例代码

    说明 1.导入模块pyplot,并指定别名plt,以避免重复输入pyplot.模块化pyplot包含许多用于制作图表的功能. 2.将绘制的直线坐标传递给函数plot(). 3.通过函数plt.show()打开Matplotlib,显示所绘图形. 实例 import matplotlib.pyplot as plt #将(0,1)点和(2,4)连起来 plt.plot([0,2],[1,4]) plt.show() 相关实例扩展: 线型图 import matplotlib.pyplot as p

  • 手把手带你了解Python数据分析--matplotlib

    目录 柱形图 条形图 折线图 饼图和圆环图 分离饼图块 圆环图 总结 柱形图 bar()函数绘制柱形图 import matplotlib.pyplot as pl x = [1,2,3,4,5,6,7] y = [15,69,85,12,36,95,11] pl.bar(x,y) pl.show() bar()函数的参数width和color设置每根柱子的宽度和颜色 有中文时要添加 pl.rcParams['font.sans-serif'] = ['FangSong'] 有负号时要添加 pl

  • Python 数据科学 Matplotlib图库详解

    Matplotlib 是 Python 的二维绘图库,用于生成符合出版质量或跨平台交互环境的各类图形. 图形解析与工作流 图形解析 工作流 Matplotlib 绘图的基本步骤: 1  准备数据 2  创建图形 3 绘图 4 自定义设置 5 保存图形 6 显示图形 import matplotlib.pyplot as plt x = [1,2,3,4] # step1 y = [10,20,25,30] fig = plt.figure() # step2 ax = fig.add_subpl

  • python图像处理基本操作总结(PIL库、Matplotlib及Numpy)

    一.PIL库对图像的基本操作 1.读取图片 PIL网上有很多介绍,这里不再讲解.直接操作,读取一张图片,将其转换为灰度图像,并打印出来. from PIL import Image import matplotlib.pyplot as plt pil_im = Image.open("empire.jpeg") pil_image = pil_im.convert("L") plt.gray() plt.imshow(pil_image) plt.show() 输

  • Python中matplotlib如何改变画图的字体

    事情是这样的:平时我汇报或者写论文需要画图,都会喜欢用Python的 matplotlib 和 seaborn 把数据

随机推荐