首頁 > 軟體

Python matplotlib plotly繪製圖表詳解

2022-03-16 10:00:38

一、整理資料

以300部電影作為資料來源

import pandas as pd 
cnboo=pd.read_excel("cnboNPPD1.xls")
cnboo 

import seaborn as sns
import numpy as np 
import matplotlib as mpl
from matplotlib import pyplot as plt 
import pandas as pd 
from datetime import datetime,timedelta
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei'] # 用來正常顯示中文標籤
plt.rcParams['axes.unicode_minus']=False # 用來正常顯示負號
from datetime import datetime 
! pip install plotly # 安裝
import matplotlib.pyplot as plt
import plotly
from plotly.offline import download_plotlyjs,init_notebook_mode,plot,iplot
x=cnboo['BO'].tolist()
y=cnboo['PERSONS'].tolist()
dict01={"x":x,"y":y}
dict01

二、折線圖

# 折線圖
iplot([dict01])

三、散點圖

import plotly.graph_objs as go
iplot([go.Scatter(x=x,y=y,mode='markers')])

# 隨機生成的點圖
import numpy as np
iplot([go.Scatter(x=np.random.randn(100),y=np.random.randn(100),mode='markers')])
go 

trace=go.Scatter(x=cnboo['PRICE'],y=y,mode='markers',)
data=[trace]
iplot(data)

trace=go.Scatter(x=cnboo['PRICE'],y=y,mode='markers',marker=dict(color='red',size=9,opacity=0.4))
data=[trace]
iplot(data)

四、餅圖

colors=['#dc2624','#2b4750','#45a0a2','#e87a59','#7dcaa9','#649E7D','#dc8018',
       '#C89F91','#6c6d6c','#4f6268','#c7cccf']
filmtype=cnboo['TYPE']
filmbo=cnboo['PRICE']
trace=go.Pie(labels=filmtype,values=filmbo,
            hoverinfo='label+percent',textinfo='value',textfont=dict(size=10),
             marker=dict(colors=colors,line=dict(color='#000000',width=3)))
data=[trace]
iplot(data)

filmtype=cnboo['TYPE']
filmbo=cnboo['PRICE']
trace=go.Pie(labels=filmtype,values=filmbo,
            hoverinfo='label+percent',textinfo='value',textfont=dict(size=12),
             marker=dict(colors=colors))
data=[trace]
iplot(data)

五、柱形圖

# plotly bar
trace1=go.Bar(x=cnboo['TYPE'],y=cnboo['PRICE'],name="型別與票價")
trace2=go.Bar(x=cnboo['TYPE'],y=y,name="型別與人數")
layout=go.Layout(title="中國電影型別與票價,人數的關係",xaxis=dict(title='電影型別'))
data=[trace1,trace2]
fig=go.Figure(data,layout=layout)
iplot(fig)

六、點圖(設定多個go物件)

trace1=go.Scatter(x=cnboo['TYPE'],y=cnboo['PRICE'],name="型別與票價",mode="markers",
                  marker=dict(color="red",size=8))
trace2=go.Scatter(x=cnboo['TYPE'],y=cnboo['PERSONS'],name="型別與人數",mode="markers",
                  marker=dict(color="blue",size=5))
data=[trace1,trace2]
iplot(data)

trace1=go.Scatter(x=cnboo['TYPE'],y=cnboo['PRICE'],name="型別與票價",mode="markers",
                  marker=dict(color="red",size=8))
trace2=go.Scatter(x=cnboo['TYPE'],y=cnboo['PERSONS'],name="型別與人數",mode="markers",
                  marker=dict(color="blue",size=5))
layout=go.Layout(title="中國電影型別與票價,人數的關係",plot_bgcolor="#FFFFFF")
data=[trace1,trace2]
fig=go.Figure(data,layout=layout)
iplot(fig)

七、2D密度圖

import plotly.figure_factory as ff
fig=ff.create_2d_density(x,y,colorscale=colors,hist_color='#dc2624',point_size=5)
iplot(fig,filename='評分與人次')

colorscale=['rgb(20, 38, 220)',
 'rgb(255, 255, 255)'] # 最後一個顏色都是呼叫背景
fig=ff.create_2d_density(x,y,colorscale=colorscale,hist_color='#dc2624',point_size=5)
iplot(fig,filename='評分與人次')

八、簡單3D圖

layout=go.Layout(title="中國電影票房與人次,票價的關係",barmode="group") 
trace01=go.Scatter3d(
    x=cnboo['BO'],
    y=cnboo['PRICE'],
    z=cnboo['PERSONS'],
    mode='markers',
    marker=dict(size=12,color=colors,colorscale='Viridis',
               opacity=0.5,showscale=True)  #opacity是透明度
)
data=[trace01]
fig=go.Figure(data=data,layout=layout)
iplot(fig,filename='3d')

以上就是Python matplotlib plotly繪製圖表詳解的詳細內容,更多關於Python matplotlib plotly的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com