A. 用python對txt數據進行繪圖
## 繪制該文件中的數據
## 需要引入pylab庫,裡面用到的函數和MATLAB里的非常類似
def plotData(X, y):
length = len(y)
pylab.figure(1)
pylab.plot(X, y, 'rx')
pylab.xlabel('Population of City in 10,000s')
pylab.ylabel('Profit in $10,000s')
pylab.show()#讓繪制的圖像在屏幕上顯示出來
B. Python如何畫cos和sin的圖啊
在python自帶編輯器IDLE中,新建腳本如作圖.py
導入需要的模塊
import numpy as np
import scipy as sp
import pylab as pl
2
輸入代碼
x=np.linspace(0,4*np.pi,100)
pl.plot(x,pl.sin(x))
pl.show()
3
執行代碼,按F5,可直接顯示圖片
4
幾點說明:
1. 方法linspace(0,4*np.pi,100)表示從0開始,到4*pi結束,生成100個點
2. 方法plot為畫圖函數,相當於plot(x,y),x為橫坐標,y為縱坐標
3.show()為展示出來
希望採納!!
C. 怎麼用python繪圖
你可以使用numpy和matplotlab這兩個庫來實現的你功能。
你的圖可以參考:
http://matplotlib.org/examples/pylab_examples/histogram_percent_demo.html
importmatplotlib
fromnumpy.randomimportrandn
importmatplotlib.pyplotasplt
frommatplotlib.tickerimportFuncFormatter
defto_percent(y,position):
#Ignorethepassedinposition.
#ticklocations.
s=str(100*y)
#
ifmatplotlib.rcParams['text.usetex']==True:
returns+r'$\%$'
else:
returns+'%'
x=randn(5000)
#Makeanormedhistogram.It'llbemultipliedby100later.
plt.hist(x,bins=50,normed=True)
#_percent.Thismultipliesallthe
#defaultlabelsby100,makingthemallpercentages
formatter=FuncFormatter(to_percent)
#Settheformatter
plt.gca().yaxis.set_major_formatter(formatter)
plt.show()
最主要的就是x軸和y軸的處理,我按照對數算了一下你提供的數據,好像和這個圖效果不一樣。
如果解決了您的問題請採納!
如果未解決請繼續追問
D. python 繪制圖表matplotlib
一般的, 根據當前的月份獲取天數, 遍歷一下字典, 增加缺失的鍵值對即可.
E. 怎麼用Python繪制能量譜
numpy主要是用於數值計算,包括sin、cos、exp等,同時提供N維數據對象;pandas提供了數據結構和數據分析工具;scipy 則是基於numpy,提供了一個在python中做科學計算的工具集,也就是說它是更上一個層次的庫;我理解大概是這樣,歡迎指正!
F. Python如何實現知識圖譜
那就分享一張吧
G. 知識圖譜可以用python構建嗎
知識圖譜可以用python構建嗎?
答案當然是可以的!!!
那麼如何使用python構建
什麼是知識圖譜
從Google搜索,到聊天機器人、金融風控、物聯網場景、智能醫療、自適應教育、推薦系統,無一不跟知識圖譜相關。它在技術領域的熱度也在逐年上升。
互聯網的終極形態是萬物的互聯,而搜索的終極目標是對萬物的直接搜索。傳統搜索引擎依靠網頁之間的超鏈接實現網頁的搜索,而語義搜索是直接對事物進行搜索,如人物、機構、地點等。這些事物可能來自文本、圖片、視頻、音頻、IoT設備等各種信息資源。而知識圖譜和語義技術提供了關於這些事物的分類、屬性和關系的描述,使得搜索引擎可以直接對事物進行索引和搜索。
知識圖譜是由Google公司在2012年提出來的一個新的概念。從學術的角度,我們可以對知識圖譜給一個這樣的定義:「知識圖譜本質上是語義網路(Semantic Network)的知識庫」。但這有點抽象,所以換個角度,從實際應用的角度出發其實可以簡單地把知識圖譜理解成多關系圖(Multi-relational Graph)。
那什麼叫多關系圖呢? 學過數據結構的都應該知道什麼是圖(Graph)。圖是由節點(Vertex)和邊(Edge)來構成,但這些圖通常只包含一種類型的節點和邊。但相反,多關系圖一般包含多種類型的節點和多種類型的邊。
本項目利用pandas將excel中數據抽取,以三元組形式載入到neo4j資料庫中構建相關知識圖譜。
運行環境
基於Neo4j能夠很容易構建知識圖譜,除了用neo4j自帶的cypher,也支持Python包py2neo創建節點和關系從而構建知識圖譜。本項目是基於發票信息,將發票數據中結構化數據抽象成三元組,分別創建節點和關系從而構建成知識圖譜。
具體包依賴可以參考文件requirements.txt
neo4j-driver==1.6.2numpy==1.15.3pandas==0.23.4parso==0.3.1pickleshare==0.7.5pluggy==0.8.0prompt-toolkit==1.0.15py==1.7.0py2neo==3Pygments==2.2.0pytest==3.9.3python-dateutil==2.7.5wcwidth==0.1.7wincertstore==0.2xlrd==1.1.0
將所需依賴安裝到pyton中:pip install -r requirements.txt
Pandas抽取excel數據
python中pandas非常適用於數據分析與處理,可以將excel文件轉換成dataframe格式,這種格式類似於Spark中的Dataframe結構,可以用類sql的形式對數據進行處理。
Excel數據結構如下
通過函數data_extraction和函數relation_extrantion分別抽取構建知識圖譜所需要的節點數據以及聯系數據,構建三元組。
數據提取主要採用pandas將excel數據轉換成dataframe類型
invoice_neo4j.py
建立知識圖譜所需節點和關系數據
DataToNeo4jClass.py
具體代碼請移步到GitHub上下載
詳細內容請到github下載,項目名neo4j-python-pandas-py2neo-v3
更多Python知識,請關註:Python自學網!!
H. 如何用python繪制各種圖形
1.環境
系統:windows10
python版本:python3.6.1
使用的庫:matplotlib,numpy
2.numpy庫產生隨機數幾種方法
import numpy as np
numpy.random
rand(d0,d1,...,dn)
In [2]: x=np.random.rand(2,5)
In [3]: x
Out[3]:
array([[ 0.84286554, 0.50007593, 0.66500549, 0.97387807, 0.03993009],
[ 0.46391661, 0.50717355, 0.21527461, 0.92692517, 0.2567891 ]])
randn(d0,d1,...,dn)查詢結果為標准正態分布
In [4]: x=np.random.randn(2,5)
In [5]: x
Out[5]:
array([[-0.77195196, 0.26651203, -0.35045793, -0.0210377 , 0.89749635],
[-0.20229338, 1.44852833, -0.10858996, -1.65034606, -0.39793635]])
randint(low,high,size)
生成low到high之間(半開區間 [low, high)),size個數據
In [6]: x=np.random.randint(1,8,4)
In [7]: x
Out[7]: array([4, 4, 2, 7])
random_integers(low,high,size)
生成low到high之間(閉區間 [low, high)),size個數據
In [10]: x=np.random.random_integers(2,10,5)
In [11]: x
Out[11]: array([7, 4, 5, 4, 2])
3.散點圖
x x軸
y y軸
s 圓點面積
c 顏色
marker 圓點形狀
alpha 圓點透明度#其他圖也類似這種配置
N=50# height=np.random.randint(150,180,20)# weight=np.random.randint(80,150,20)
x=np.random.randn(N)
y=np.random.randn(N)
plt.scatter(x,y,s=50,c='r',marker='o',alpha=0.5)
plt.show()
8.箱型圖
import matplotlib.pyplot as pltimport numpy as npdata=np.random.normal(loc=0,scale=1,size=1000)#sym 點的形狀,whis虛線的長度plt.boxplot(data,sym="o",whis=1.5)plt.show()
#sym 點的形狀,whis虛線的長度
I. 如何用Python繪制Circos圖
用Python實現Circos圖的繪制在線繪制的Circos有一定局限性,如對數據的要求、個性化的局限和處理速度等的問題,但如果你是一個Pythoneer或者喜歡用更加Pythonic的方式來個性化地繪制Circos圖,那麼今天就跟隨我一起用代碼實現這一目標吧!
安裝Circos包
首先,登錄Python的包索引網站PythonPackageIndex(PyPI,正確讀音是:PiePeeAi),找到Circos包的下載頁:
https://pypi.python.org/pypi/Circos/1.3.5
該包/模塊的作者是我的好友EricMa。你可以選擇下載wheeler文件,然後本地安裝。也可以在shell下直接通過pip進行安裝:
pipinstallcircos
注意,所支持的Python版本必須是3.x,對2不支持。
選擇數據
當安裝了circos包後,我們就可以直接應用這個包來寫代碼了。為了演示方便,我需要應用一些數據。作為內科醫師,就讓我來展示一下老本行:處理葯物與肝酶細胞色素P450的相互關系的可視化。由於是為了拋磚引玉,所以繪制出的Circos圖相對簡單。
我們先從美國FDA官網下載不同細胞色素相關的各種口服葯物表。共202種常用的口服葯物,涵蓋內科學、腫瘤學、神經科和心理學等學科。數據文件如下:
可以看到這個數據的結構:是按肝細胞色素酶進行分類,共分8個列。這8個細胞色素酶分別是:CYP1A2,CYP2B6,CYP2C8,CYP2C9,CYP2C19,CYP2D6,CYP2E1和CYP3A4。我們將要建立各個口服葯與這些肝酶之間關系的Circos圖,從而了解通過相同肝酶代謝或轉化的葯物之間是否存在相互作用。
導入各個模塊和讀入數據
導入各個模塊:
fromcircosimportCircosPlot
importxlrd
importpandasaspd
importnumpyasnp
讀入文件:
filename='.\MedicationInteraction.xlsx'
book=xlrd.open_workbook(filename)
print('Fileloaded!')
提取數據:
nrows=book.sheet_by_name('Sheet1').nrows
header=book.sheet_by_name('Sheet1').row_values(0)
data=[book.sheet_by_name('Sheet1').row_values(i)foriinrange(1,nrows)]
df=pd.DataFrame(data,columns=header)
df[df=='']=np.nan
讀取後,葯物和酶的數據為pandas的DataFrame數據結構,細胞色素P450酶的名字為columns的名字。我們可以檢查一下數據:
修數據,尤其是處理NA數據
df_dict={}
foriinrange(len(df.columns)):
df_dict[df.icol(i).name]=list(df.icol(i).dropna())
節點和連線
創建節點(nodes)數據,在我這個例子里就是各個葯物和肝酶:
nodes=[]
forkeyindf_dict.keys():
nodes.extend(df_dict[key])
nodes=list(nodes)
headers=list(df.columns)
enzymes=['0']*5
forheaderinheaders:
enzymes.append(header)
enzymes.extend(['0']*5)
nodes.extend(enzymes)
創建連線(edges)數據,我們應用tuple(元組)這個數據結構來表示葯物與特定肝酶之間的關系:
edges_origin=[]
forkeyindf_dict.keys():
forvalueindf_dict[key]:
edges_origin.append((key,value))
繪圖
繪制Circos圖:
c=CircosPlot(nodes,edges_origin,radius=10,
nodecolor="blue",
edgecolor="red",
)
c.draw()
得到了下面這張所有葯物與肝酶之間的圖:
左上方是8個肝臟細胞色素P450酶(CYP1A2、CYP2B6、CYP2C8、CYP2C9、CYP2C19、CYP2D6、CYP2E1和CYP3A4)。其它點即為202種口服葯物。每種葯物都與參與代謝和轉化它的P450酶相連。與相同酶連接的不同葯物,理論上應該都存在相互作用,但具體如何還要看與酶的作用機理。
個性化繪圖
如果我們打算分別可視化出不同肝酶的關系圖形,我們只需改變連線信息,即edges信息:
edges=[]
‍forvalueindf_dict['CYP2B6']:
edges.append(('CYP2B6',value))
c=CircosPlot(nodes,edges,radius=10,
nodecolor="orange",
edgecolor="orange",
)
c.draw()
從而我們得到了各種肝酶所代謝和轉化葯物的圖形
用PS將它們合並:
相同肝酶所代謝和轉化的葯物用相同顏色的edges表示。
顯示特定葯物
最後,我們可以挑選其中一些感興趣的葯物來進行觀察,例如,我從這202個葯物中指定幾個我感興趣的葯物:
propafenone(心律平),acetaminophen(對乙醯氨基酚),paclitaxel(紫杉醇),ibuprofen(布洛芬),losartan(洛沙坦),omeprazole(奧美拉唑),carvediolo(卡維地洛),codeine(可待因),theophylline(茶鹼),quinidine(奎尼丁),verapamil(異搏定),lovastatin(洛伐他汀),nitrendipine(尼群地平)
然後重新建立edges:
medications=['propafenone','acetaminophen','paclitaxel','ibuprofen','losartan','omeprazole','carvedilol','codeine','theophylline','quinidine','verapamil','lovastatin','nitrendipine']
edges_candidate=set()
formedicationinmedications:
foredgeinedges_origin:
ifmedication==edge[1]:
edges_candidate.add(edge)
edges_candidate=list(edges_candidate)
然後再繪圖:
c=CircosPlot(nodes,edges_candidate,radius=10,
nodecolor="black",
edgecolor="black",
)
c.draw()
從而得到這張圖。
J. 如何用Python繪制學術報告圖表
當數據較多時,容易出現excel"翻白眼"的現象;
需要使用subplot功能或批量處理時,使用MATLAB或Python更為方便;
excel處理的圖在美觀程度上較論文圖表標准有一定的距離。