matplotlib:折线图 水平条形图 饼状图 柱形图 散点图 三维图

导包
from matplotlib import pyplot as plt
from mxnet import nd,gluon;
x , y 接收的类型为list 或 numpy;plt.plot可以写多个,那就显示在同一个图上了
1. 折线图

在这里插入图片描述

def print(x,y,xlabel='x/y_val',ylabel='x/y_label',title='TEST 2019/9/17',figsize=(3.5, 2.5)):
    plt.figure(figsize=figsize);
    plt.plot(x,y,c='red',label='TEST01');
    plt.xlabel(xlabel);
    plt.ylabel(ylabel);
    plt.title(title);
#     为了显示图例的位置
    plt.legend(loc='best')
    plt.grid(color='r',linestyle='-.');
    plt.savefig('zhifang.png')
    plt.show();
r=list(range(100));
v=nd.power(nd.array(r),3)+100;
pp(r,v.asnumpy())
2.水平条形图

在这里插入图片描述

import matplotlib.pyplot as plt
import matplotlib

"""
绘制水平条形图方法barh
参数一:y轴
参数二:x轴
"""

def printy(data,names,xlabel="价格",title="不同平台图书价格"):
    plt.barh(range(len(names)), price, height=0.7, color='steelblue', alpha=0.8)      # 从下往上画
    plt.yticks(range(len(names)), names)
    plt.xlim(30,47)
    plt.xlabel(xlabel)
    plt.title(title)
    for x, y in enumerate(data):
        plt.text(y + 0.2, x - 0.1, '%s' % y);
    plt.savefig('tu.png')
    plt.show()
    
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False
price = [39.5, 39.9, 45.4, 38.9, 33.34]
names=['亚马逊', '当当网', '中国图书网', '京东', '天猫']
printy(price,names)
3.饼状图

在这里插入图片描述

import matplotlib.pyplot as plt
import matplotlib

matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False

def printy(size,label_list = ["第一部分", "第二部分", "第三部分"],
           color = ["red", "green", "blue"],explode = [0.05, 0, 0]):
    patches, l_text, p_text = plt.pie(size, explode=explode, colors=color, labels=label_list, labeldistance=1.1, autopct="%1.1f%%", shadow=False, startangle=90, pctdistance=0.6)
    plt.axis("equal")    # 设置横轴和纵轴大小相等,这样饼才是圆的
    plt.legend()
    plt.savefig('pip.png')
    plt.show()
    
size = [55, 35, 10]    # 各部分大小
printy(size)
4.柱形图

在这里插入图片描述

import matplotlib.pyplot as plt
import matplotlib
import random
def printy(y1_data,y2_data,label1='legend1',label2='legend2',
           x_data = ('A', 'B', 'C', 'D', 'E'),bar_width = 0.35):
    plt.figure(3);
    x_index = np.arange(len(y1_data))   #柱的索引
    rects1 = plt.bar(x_index, y1_data, width=bar_width,alpha=0.4, color='b',label=label1)            #参数:左偏移、高度、柱宽、透明度、颜色、图例
    rects2 = plt.bar(x_index + bar_width, y2_data, width=bar_width,alpha=0.5,color='r',label=label2) #参数:左偏移、高度、柱宽、透明度、颜色、图例
    #关于左偏移,不用关心每根柱的中心不中心,因为只要把刻度线设置在柱的中间就可以了
    plt.xticks(x_index + bar_width/2, x_data)   #x轴刻度线
    plt.legend()    #显示图例
    plt.tight_layout()  #自动控制图像外部边缘,此方法不能够很好的控制图像间的间隔
    for a,b in enumerate(y1_data):
        plt.text(a, b+0.05, '%.0f' % b, ha='center', va= 'bottom',fontsize=14);
    for a,b in enumerate(y2_data):
        plt.text(a+bar_width, b, '%.0f' % b, ha='center', va= 'bottom',fontsize=14);
    plt.savefig('shuang.png')
    plt.show()


x_data = ('A', 'B', 'C', 'D', 'E')
y1_data = list([random.randint(12,60) for i in range(5)])
y2_data = list([random.randint(16,70) for i in range(5)]);
printy(y1_data,y2_data,x_data=x_data)
5.散点图

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt

def printy(x,y,title='散点图'):
    plt.scatter(x, y);
    plt.title(title)
    plt.savefig('san.png')
    plt.show()
    
N = 1000
x = np.random.randn(N)
y = np.random.randn(N);
printy(x,y)
6.三维图

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt 
import mpl_toolkits.mplot3d
def printy(x,y,xl='x',yl='y',zl='z'):
    ax = plt.subplot(111, projection = '3d')   # 三维图形
    ax.plot_surface(x, y, z, rstride = 2, cstride = 1, cmap = plt.cm.Blues_r);
    ax.set_xlabel(xl)                         # 设置坐标轴标签
    ax.set_xlabel(yl)
    ax.set_xlabel(zl);
    plt.savefig('df.png')
    plt.show()
x, y = np.mgrid[-2 : 2 : 20j, -2 : 2 : 20j];
z = 50 *(x+y)                  # 测试数据
printy(x,y,z)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值