1. 绘制3D柱状图,其数据格式为,二维数组或三维数组。

    from numpy import *

    file=open('C:\\Users\\jyjh\\Desktop\\count.txt','r')

    arr=[]

    for i in file.readlines():

    temp=[]

    for j in i.strip().split('\t'):

    temp.append(float(j))

    arr.append(temp)

    import random

    import numpy as np

    import matplotlib as mpl

    import matplotlib.pyplot as plt

    from mpl_toolkits.mplot3d  import Axes3D

    mpl.rcParams['font.size']=10

    fig=plt.figure()

    ax=fig.add_subplot(111,projection='3d')

    xs=range(len(arr))

    ys=range(len(arr[0]))

    for z in range(len(arr)):

    xs=range(len(arr))

    ys=arr[z]

    color=plt.cm.Set2(random.choice(range(plt.cm.Set2.N)))

    ax.bar(xs,ys,zs=z,zdir='y',color=color,alpha=0.5)

    ax.xaxis.set_major_locator(mpl.ticker.FixedLocator(xs))

    ax.yaxis.set_major_locator(mpl.ticker.FixedLocator(ys))

    ax.set_xlabel('x')

    ax.set_ylabel('y')

    ax.set_zlabel('copies')

    plt.show()

    通过设置xs,ys,z可以设定绘制不同维度的数据。

  2. 绘制热图:

    import numpy as np

    from matplotlib import pyplot as plt

    from matplotlib import cm

    from matplotlib import axes

    def draw_heatmap(data,xlabels,ylabels):

    #cmap = cm.get_cmap('rainbow',1000)

    cmap=cm.gray

    figure=plt.figure(facecolor='w')

    ax=figure.add_subplot(2,1,1,position=[1,1,1,1])

    ax.set_yticks(range(len(ylabels)))

    ax.set_yticklabels(ylabels)

    ax.set_xticks(range(len(xlabels)))

    ax.set_xticklabels(xlabels)

    vmax=data[0][0]

    vmin=data[0][0]

    for i in data:

    for j in i:

    if j>vmax:

    vmax=j

    if j<vmin:

    vmin=j

    map=ax.imshow(data,interpolation='nearest',cmap=cmap,aspect='auto',vmin=vmin,vmax=vmax)

    cb=plt.colorbar(mappable=map,cax=None,ax=None,shrink=0.8)

    plt.show()

    xl=range(16)

    yl=range(16)

    draw_heatmap(arr,xl,yl)

  3. 绘制曲面图

    from matplotlib import pyplot as plt

    import numpy as np

    from mpl_toolkits.mplot3d import Axes3D

    figure = plt.figure()

    ax = Axes3D(figure)

    X = np.arange(-10, 10, 0.25)

    Y = np.arange(-10, 10, 0.25)

    #网格化数据

    X, Y = np.meshgrid(X, Y)

    R = np.sqrt(X**2 + Y**2)

    Z = np.cos(R)

    ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow')

    plt.show()

  4. 绘制曲线图

    from mpl_toolkits.mplot3d import Axes3D

    import numpy as np

    import matplotlib.pyplot as plt

    #生成画布

    figure=plt.figure()

    ax=figure.add_subplot(111,projection='3d')

    #生成向量

    z=np.linspace(0,6,1000)

    r=1

    x=r*np.sin(np.pi*2*z)

    y=r*np.cos(np.pi*2*z)

    ax.plot(x,y,z)

    plt.show()

python 三维坐标图的更多相关文章

  1. iOS绘制坐标图,折线图-Swift

    坐标图,经常会在各种各样的App中使用,最常用的一种坐标图就是折线图,根据给定的点绘制出对应的坐标图是最基本的需求.由于本人的项目需要使用折线图,第一反应就是搜索已经存在的解决方案,因为这种需求应该很 ...

  2. 基于osg的python三维程序开发(一)

    背景: osg是一款开源的三维引擎,在过去多年的发展中积累了大量的用户,该引擎基于场景树的管理,使用方法简单.但是对长期使用python作为开发工具的朋友来说, 有一定门槛. 下面的小程序,演示了如何 ...

  3. Swift基础之设计折线坐标图

    最近添加了折线视图的样式,所以在这里用Swift语言重新再使用设计一下 首先设置纵坐标的数值是:体重 //体重        let weightLabel = UILabel.init(frame: ...

  4. python 三维数组找最小值

    #声明三维数组 num=[[[,,],[,,],[,,]], \ [[,,],[,,],[,,]]] value=num[][][]#设置main为num数组的第一个元素 ): ): ): if(va ...

  5. 基于osg的python三维程序开发(三)------几何形体及纹理

    def createScene(): geode = osg.Geode() pointsGeom = osg.Geometry() vertices = osg.Vec3Array() vertic ...

  6. 基于osg的python三维程序开发(二)------向量

    上一篇文章展示了如何简单创建一个osg python 程序, 本篇展示了了一些基础数据结构的使用: from pyosg import * vec = osg.Vec3Array() #push ba ...

  7. python 三维散点插值 griddata

    #三维点插值#在三维空间中,利用实际点的值推算出网格点的值import numpy as np point_grid =np.array([[0.0,0.0,0.0],[0.4,0.4,0.4],[0 ...

  8. Matplotlib:Python三维绘图

    1.创建三维坐标轴对象Axes3D 创建Axes3D主要有两种方式,一种是利用关键字projection='3d'来实现,另一种是通过从mpl_toolkits.mplot3d导入对象Axes3D来实 ...

  9. Android动画translate坐标图

    X坐标图示: Y坐标图示:

随机推荐

  1. BZOJ 3996 线性代数 最小割

    题意: 给出一个N*N的矩阵B和一个1*N的矩阵C.求出一个1*N的01矩阵A.使得 D=(A*B-C)*A^T最大.其中A^T为A的转置.输出D 分析: 这道题比较绕,我们需要看清题目中那个式子的本 ...

  2. BZOJ 3158 千钧一发 最小割

    分析: 偶数对满足条件2,所有奇数对满足条件1. 如果你能一眼看出这个规律,这道题就完成了一半. 我们只需要将数分为两类,a值为奇数,就从S向这个点连容量为b值的边,a值为偶数,就从这个点向T连容量为 ...

  3. 秋招复习-C++( 一)

    Linux/Unix编程部分 1.进程间通信方式:信号,信号量,消息队列,共享内存,套接字Socket 2.ipcs: Linux/Unix下的命令,可以用来查看当前系统中所使用的进程间通信方式的各种 ...

  4. 零基础入门学习Python(14)--字符串:各种奇葩的内置方法

    前言 这节课我们回过头来,再谈一下字符串,或许我们现在再来谈字符串,有些朋友可能觉得没必要了,甚至有些朋友就会觉得,不就是字符串吗,哥闭着眼也能写出来,那其实关于字符串还有很多你不知道的秘密哦.由于字 ...

  5. MongoDB的游标操作

    MongoDB的游标操作 制作人:全心全意 游标:查询的返回资源或接口,这个接口可以逐条查询 游标的声明 var cursor = db.collection名.find(); cursor.hasN ...

  6. Java线上应用故障排查

    线上故障主要2种: CPU利用率很高, 内存占用率很大 一.CPU利用率很高 1. top查询那个进程CPU使用率高 2. 显示进程列表 ps -mp pid -o THREAD,tid,time 找 ...

  7. 97-2016年11月1日AUDUSD在公布利率后反手做单感悟(2016.11.2)

    2016年11月1日AUDUSD在公布利率后反手做单感悟         11月1日,澳联储公布利率决议,保持利率不变,AUDUSD大涨.我在上面做空认为市场会回调.做空位置是根据多种斐波那契技术找的 ...

  8. (转载)C++ string中find() ,rfind() 等函数 用法总结及示例

    string中 find()的应用  (rfind() 类似,只是从反向查找) 原型如下: (1)size_t find (const string& str, size_t pos = 0) ...

  9. ARM中的---汇编指令

    一. 带点的(一般都是ARM GNU伪汇编指令) 1. ".text".".data".".bss" 依次表示的是"以下是代码段& ...

  10. 在docker下面安装Nginx PHP mysql let's encrypt

    最近自己在弄了个Nginx PHP Mysql Let's encrypt的docker,下面记录一下 1)先装 Let's encrypt docker run --rm -p 80:80 -p 4 ...