基于python plotly交互式图表大全


Posted in Python onDecember 07, 2019

plotly可以制作交互式图表,直接上代码:

import plotly.offline as py
from plotly.graph_objs import Scatter, Layout
import plotly.graph_objs as go
py.init_notebook_mode(connected=True)
import pandas as pd
import numpy as np

In [412]:

#读取数据
df=pd.read_csv('seaborn.csv',sep=',',encoding='utf-8',index_col=0)
#展示数据
df.head()
Out[412]:
Name Type 1 Type 2 Total HP Attack Defense Sp. Atk Sp. Def Speed Stage Legendary
#
1 Bulbasaur Grass Poison 318 45 49 49 65 65 45 1 False
2 Ivysaur Grass Poison 405 60 62 63 80 80 60 2 False
3 Venusaur Grass Poison 525 80 82 83 100 100 80 3 False
4 Charmander Fire NaN 309 39 52 43 60 50 65 1 False
5 Charmeleon Fire NaN 405 58 64 58 80 65 80 2 False

In [413]:

#plotly折线图,trace就代表折现的条数
trace1=go.Scatter(x=df['Attack'],y=df['Defense'])
trace1=go.Scatter(x=[1,2,3,4,5],y=[2,1,3,5,2])
trace2=go.Scatter(x=[1,2,3,4,5],y=[2,1,4,6,7])
py.iplot([trace1,trace2])

基于python plotly交互式图表大全

#填充区域
trace1=go.Scatter(x=[1,2,3,4,5],y=[2,1,3,5,2],fill="tonexty",fillcolor="#FF0")
py.iplot([trace1])

基于python plotly交互式图表大全

# 散点图
trace1=go.Scatter(x=[1,2,3,4,5],y=[2,1,3,5,2],mode='markers')
trace1=go.Scatter(x=df['Attack'],y=df['Defense'],mode='markers')
py.iplot([trace1],filename='basic-scatter')

基于python plotly交互式图表大全

#气泡图
x=df['Attack']
y=df['Defense']
colors = np.random.rand(len(x))#set color equal to a variable
sz =df['Defense']
fig = go.Figure()
fig.add_scatter(x=x,y=y,mode='markers',marker={'size': sz,'color': colors,'opacity': 0.7,'colorscale': 'Viridis','showscale': True})
py.iplot(fig)

基于python plotly交互式图表大全

#bar 柱状图
df1=df[['Name','Defense']].sort_values(['Defense'],ascending=[0])
data = [go.Bar(x=df1['Name'],y=df1['Defense'])]
py.iplot(data, filename='jupyter-basic_bar')

基于python plotly交互式图表大全

#组合bar  group
trace1 = go.Bar(x=['giraffes', 'orangutans', 'monkeys'],y=[20, 14, 23],name='SF Zoo')
trace2 = go.Bar(x=['giraffes', 'orangutans', 'monkeys'],y=[12, 18, 29],name='LA Zoo')
data = [trace1, trace2]
layout = go.Layout( barmode='group')
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='grouped-bar')

基于python plotly交互式图表大全

#组合bar  gstack上下组合
trace1 = go.Bar(x=['giraffes', 'orangutans', 'monkeys'],y=[20, 14, 23],name='SF Zoo')
trace2 = go.Bar(x=['giraffes', 'orangutans', 'monkeys'],y=[12, 18, 29],name='LA Zoo',text=[12, 18, 29],textposition = 'auto')
data = [trace1, trace2]
layout = go.Layout( barmode='stack')
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='grouped-bar')

基于python plotly交互式图表大全

#饼图
fig = {
 "data": [
  {
   "values": df['Defense'][0:3],
   "labels": df['Name'][0:3],
   "domain": {"x": [0,1]},
   "name": "GHG Emissions",
   "hoverinfo":"label+percent+name",
   "hole": .4,
   "type": "pie"
  }
    ],
  
 "layout": {
    "title":"Global Emissions 1990-2011",
    "annotations": [
      {
        "font": {"size": 20},
        "showarrow": False,
        "text": "GHG",
        "x": 0.5,
        "y": 0.5
      }
            ]
      }
  }
py.iplot(fig, filename='donut')

基于python plotly交互式图表大全

# Learn about API authentication here: https://plot.ly/pandas/getting-started
# Find your api_key here: https://plot.ly/settings/api
#雷达图
data = [
  go.Scatterpolar(
   r = [39, 28, 8, 7, 28, 39],
   theta = ['A','B','C', 'D', 'E', 'A'],
   fill = 'toself',
   name = 'Group A'
  ),
  go.Scatterpolar(
   r = [1.5, 10, 39, 31, 15, 1.5],
   theta = ['A','B','C', 'D', 'E', 'A'],
   fill = 'toself',
   name = 'Group B'
  )
]
 
layout = go.Layout(
 polar = dict(
  radialaxis = dict(
   visible = True,
   range = [0, 50]
  )
 ),
 showlegend = False
)
 
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename = "radar/multiple")

基于python plotly交互式图表大全

#box 箱子图
df_box=df[['HP','Attack','Defense','Speed']]
data = []
for col in df_box.columns:
  data.append(go.Box(y=df_box[col], name=col, showlegend=True ) )
#data.append( go.Scatter(x= df_box.columns, y=df.mean(), mode='lines', name='mean' ) )
py.iplot(data, filename='pandas-box-plot')

基于python plotly交互式图表大全

#箱子图加平均线
df_box=df[['HP','Attack','Defense','Speed']]
data = []
for col in df_box.columns:
  data.append(go.Box(y=df_box[col], name=col, showlegend=True) )
data.append( go.Scatter(x= df_box.columns, y=df.mean(), mode='lines', name='mean' ) )
py.iplot(data, filename='pandas-box-plot')

基于python plotly交互式图表大全

#Basic Horizontal Bar Chart 条形图 plotly条形图
df_hb=df[['Name','Attack','Defense','Speed']][0:5].sort_values(['Attack'],ascending=[1])
data = [
  go.Bar(
    y=df_hb['Name'], # assign x as the dataframe column 'x'
    x=df_hb['Attack'],
    orientation='h',
    text=df_hb['Attack'],
    textposition = 'auto'
  )
]
py.iplot(data, filename='pandas-horizontal-bar')

基于python plotly交互式图表大全

#直方图Histogram
data = [go.Histogram(x=df['Attack'])]
py.iplot(data, filename='basic histogram')

基于python plotly交互式图表大全

#distplot
import plotly.figure_factory as ff 
hist_data =[df['Defense']]
group_labels = ['distplot']
fig = ff.create_distplot(hist_data, group_labels)
# Add title
fig['layout'].update(title='Hist and Rug Plot',xaxis=dict(range=[0,200]))
py.iplot(fig, filename='Basic Distplot')

基于python plotly交互式图表大全

# Add histogram data
x1 = np.random.randn(200)-2 
x2 = np.random.randn(200) 
x3 = np.random.randn(200)+2 
x4 = np.random.randn(200)+4 
 
# Group data together
hist_data = [x1, x2, x3, x4]
group_labels = ['Group 1', 'Group 2', 'Group 3', 'Group 4']
# Create distplot with custom bin_size
fig = ff.create_distplot(hist_data, group_labels,)
# Plot!
py.iplot(fig, filename='Distplot with Multiple Datasets')

基于python plotly交互式图表大全

好了,以上就是我研究的plotly,欢迎朋友们评论,补充,一起学习!

以上这篇基于python plotly交互式图表大全就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 实现简单的shell sed替换功能(实例讲解)
Sep 29 Python
教你用一行Python代码实现并行任务(附代码)
Feb 02 Python
python list删除元素时要注意的坑点分享
Apr 18 Python
pandas 实现字典转换成DataFrame的方法
Jul 04 Python
Python使用pyodbc访问数据库操作方法详解
Jul 05 Python
Numpy截取指定范围内的数据方法
Nov 14 Python
python+opencv实现摄像头调用的方法
Jun 22 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
Aug 26 Python
python实现while循环打印星星的四种形状
Nov 23 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
Feb 27 Python
Pytorch GPU内存占用很高,但是利用率很低如何解决
Jun 01 Python
使用python绘制分组对比柱状图
Apr 21 Python
Python数据可视化:顶级绘图库plotly详解
Dec 07 #Python
python将时分秒转换成秒的实例
Dec 07 #Python
pandas实现将日期转换成timestamp
Dec 07 #Python
Python 装饰器原理、定义与用法详解
Dec 07 #Python
Python Pandas 转换unix时间戳方式
Dec 07 #Python
Pandas-Cookbook 时间戳处理方式
Dec 07 #Python
Python数据可视化:饼状图的实例讲解
Dec 07 #Python
You might like
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
jquery json 实例代码
2010/12/02 Javascript
Javascript 自适应高度的Tab选项卡
2011/04/05 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件
2011/12/21 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
JS实现图片放大镜效果的方法
2015/02/27 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
微信小程序 新建登录页并实现tabBar隐藏
2017/06/13 Javascript
laydate 显示结束时间不小于开始时间的实例
2017/08/11 Javascript
Vue-Router2.X多种路由实现方式总结
2018/02/09 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
2018/08/13 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
2019/06/18 jQuery
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
Python中property函数用法实例分析
2018/06/04 Python
python实现周期方波信号频谱图
2018/07/21 Python
用python爬取租房网站信息的代码
2018/12/14 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
python时间time模块处理大全
2020/10/25 Python
Python+logging输出到屏幕将log日志写入文件
2020/11/11 Python
中学生操行评语
2014/04/24 职场文书
物业保安岗位职责
2014/07/02 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
2015年安全月活动总结
2015/03/26 职场文书
2015暑假打工实践报告
2015/07/13 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
幼儿园奖惩制度范本
2015/08/05 职场文书
2016年寒假见闻
2015/10/10 职场文书