基于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实现获取某天是某个月中的第几周
Feb 11 Python
详解Python中for循环的使用
Apr 14 Python
Python搜索引擎实现原理和方法
Nov 27 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
Feb 24 Python
Python入门学习指南分享
Apr 11 Python
python3.4.3下逐行读入txt文本并去重的方法
Apr 29 Python
Python一行代码实现快速排序的方法
Apr 30 Python
python 列表输出重复值以及对应的角标方法
Jun 11 Python
浅谈python3中input输入的使用
Aug 02 Python
详解python安装matplotlib库三种失败情况
Jul 28 Python
python判断all函数输出结果是否为true的方法
Dec 03 Python
python3操作redis实现List列表实例
Aug 04 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中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
PHP微信红包生成代码分享
2016/10/06 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
javascript+html5实现绘制圆环的方法
2015/07/28 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
2017/10/31 Javascript
jQuery+CSS实现的标签页效果示例【测试可用】
2018/08/14 jQuery
详解JWT token心得与使用实例
2019/08/02 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
2020/12/15 Vue.js
[02:26]2016国际邀请赛8月3日开战 中国军团出征西雅图
2016/08/02 DOTA
python多重继承新算法C3介绍
2014/09/28 Python
Python描述器descriptor详解
2015/02/03 Python
Python字典数据对象拆分的简单实现方法
2017/12/05 Python
python三方库之requests的快速上手
2019/03/04 Python
关于numpy数组轴的使用详解
2019/12/05 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
HTML5 层的叠加的实现
2020/07/07 HTML / CSS
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
介绍一下Ruby的特点
2013/01/20 面试题
七一党建活动方案
2014/01/28 职场文书
户外婚礼策划方案
2014/02/08 职场文书
电大毕业生自我鉴定
2014/04/10 职场文书
计算机应用专业毕业生求职信
2014/06/03 职场文书
2014领导班子四风问题查摆思想汇报
2014/09/13 职场文书
初一年级组工作总结
2015/08/12 职场文书
分析ZooKeeper分布式锁的实现
2021/06/30 Java/Android