十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
matplotlib的pyplot子库提供了和matlab类似的绘图API,方便用户快速绘制2D图表。例子:
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的山南网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
# coding=gbk
'''
Created on Jul 12, 2014
python 科学计算学习:numpy快速处理数据测试@author: 皮皮
'''
import string
import matplotlib.pyplot as plt
import numpy as np
if __name__ == '__main__':
file = open(E:machine_learningdatasetshousing_datahousing_data_ages.txt, 'r')linesList = file.readlines()
# print(linesList)
linesList = [line.strip().split(,) for line in linesList]
file.close()
print(linesList:)
print(linesList)
# years = [string.atof(x[0]) for x in linesList]
years = [x[0] for x in linesList]
print(years)
price = [x[1] for x in linesList]
print(price)
plt.plot(years, price, 'b*')#,label=$cos(x^2)$)plt.plot(years, price, 'r')
plt.xlabel(years(+2000))
plt.ylabel(housing average price(*2000 yuan))plt.ylim(0, 15)
plt.title('line_regression gradient decrease')plt.legend()
plt.show()
要以Python生成器为媒介。
用以下代码可以简单行程一个三维图,在这个基础上根据您的需要改写代码就可以了。
在生成器内的python代码会生成一个object。默认下,生成了一个立方体,并返回:
import c4d
def main():
return c4d.BaseObject(c4d.Ocube)
UserData输入
当然也可以返回别的物体,或者用userdata调整物体参数。注意op可以快速引用生成器对象。
importc4d
defmain():
cone =c4d.BaseObject(c4d.Ocone)
cone[c4d.PRIM_CONE_TRAD] = op[c4d.ID_USERDATA,1]
return cone
具体创建三维图步骤如下
1首先要【创建】-【造型】-【python生成器】,默认生成一个立方体即python编辑器
2-选中对象,右下角【打开python编辑器】
3-代码表示定义一个函数并返回C4D基本物体
4-这里简单改一下,把原代码中的Ocube改成Osphere,点一下执行,会生成一个三维球体。对于基本造型对象,这里的对象名称通用语法为大写字母O加对象的英文。
5-这里还可以用定义变量返回值的表达方法,比如这里定义变量cone(圆锥),c4d的属性就是大写字母O加上圆锥的英文即Ocone,返回这个变量值,执行就得到了一个圆锥。
6-除了生成基本三维图形,python编辑器可以做很多事情,这里如果有一定的python编码基础,会更容易一些。可以在网上找几个实例试一下,比如这种,生成数字的。可以在搜索引擎输入关键字Cinema 4D - Python scripts来检索别人写好的脚本。
3D图形在数据分析、数据建模、图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何在Python中使用 matplotlib进行3D图形的绘制,包括3D散点、3D表面、3D轮廓、3D直线(曲线)以及3D文字等的绘制。
准备工作:
python中绘制3D图形,依旧使用常用的绘图模块matplotlib,但需要安装mpl_toolkits工具包,安装方法如下:windows命令行进入到python安装目录下的Scripts文件夹下,执行: pip install --upgrade matplotlib即可;Linux环境下直接执行该命令。
安装好这个模块后,即可调用mpl_tookits下的mplot3d类进行3D图形的绘制。
下面以实例进行说明。
1、3D表面形状的绘制
这段代码是绘制一个3D的椭球表面,结果如下:
2、3D直线(曲线)的绘制
这段代码用于绘制一个螺旋状3D曲线,结果如下:
3、绘制3D轮廓
绘制结果如下:
相关推荐:《Python视频教程》
4、绘制3D直方图
绘制结果如下:
5、绘制3D网状线
绘制结果如下:
6、绘制3D三角面片图
绘制结果如下:
7、绘制3D散点图
绘制结果如下:
1. 绘制3D曲面图
from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
fig=plt.figure()
ax=Axes3D(fig)
x=np.arange(-4,4,0.25)
y=np.arange(-4,4,0.25)
x,y=np.meshgrid(x,y)
r=np.sqrt(x**2, y**2)
z=np.sin(r)
//绘面函数
ax.plot_surface(x,y,z,rstride=1,cstride=1,cmap=“rainbow”
plt.show()
2.绘制三维的散点图(表述一些数据点分布)
4a.mat数据地址:http blog.csdn.net/eddy_zhang/article/details/50496164
from matplotlib import pyplot as plt
import scipy.io as sio
from mpl_toolkits.mplot3d import Axes3D
matl=‘4a.mat’
data=sio.loadmat(matl)
m=data[‘data’]
x,y,z=m[0],m[1],m[2]
//创建一个绘图工程
ax=plt.subplot(111,project=‘3D’)
//将数据点分成三部分画,在颜色上有区分度
ax.scatter(x[:1000], y[:1000], z[:1000],c=‘y’ )//绘制数据点
ax.scatter(x[1000:4000], y[1000:4000], z[1000:4000],c=‘r’ )//绘制数据点
ax.scatter(x[4000:], y[4000:], z[4000:],c=‘g’ )//绘制数据点
ax.set_zlable(‘z’)//坐标轴
ax.set_ylable(‘y’)//坐标轴
ax.set_xlable(‘x’)
plt.show()
import random
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from mpl_toolkits.mplot3d import Axes3D
mpl.rcParams['font.size'] = 10
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
for z in [2011, 2012, 2013, 2014]:
xs = xrange(1,13)
ys = 1000 * np.random.rand(12)
color =plt.cm.Set2(random.choice(xrange(plt.cm.Set2.N)))
ax.bar(xs, ys, zs=z, zdir='y', color=color, alpha=0.8)
ax.xaxis.set_major_locator(mpl.ticker.FixedLocator(xs))
ax.yaxis.set_major_locator(mpl.ticker.FixedLocator(ys))
ax.set_xlabel('Month')
ax.set_ylabel('Year')
ax.set_zlabel('Sales Net [usd]')
plt.show()
效果图:
利用ptyhon matplotlib 3D函数可以画出一些3D视觉图
raw_input获取的输入是字符串,不能直接用np.array,需要用split进行切分,然后强制转化成数值类型,才能用plot函数
我把你的代码稍微修改了一下,可能不太漂亮,不过能运行了
x=[1,2,3]
a
=
raw_input('function')
a
=
a.split('
')#依空格对字符串a进行切分,如果是用逗号分隔,则改成a.split(',')
b
=
[]
for
i
in
range(len(a)):#把切分好的字符强制转化成int类型,如果是小数,将int改为float
b.append(int(a[i]))
plt.plot(x,
b,
label='x',
color="green",
linewidth=1)