重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
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)