一、整理数据
以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的资料请关注www.887551.com其它相关文章!
黄山市民网:https://www.huangshanshimin.com/