<bdo id='SkNjY'></bdo><ul id='SkNjY'></ul>
  • <legend id='SkNjY'><style id='SkNjY'><dir id='SkNjY'><q id='SkNjY'></q></dir></style></legend>

    1. <i id='SkNjY'><tr id='SkNjY'><dt id='SkNjY'><q id='SkNjY'><span id='SkNjY'><b id='SkNjY'><form id='SkNjY'><ins id='SkNjY'></ins><ul id='SkNjY'></ul><sub id='SkNjY'></sub></form><legend id='SkNjY'></legend><bdo id='SkNjY'><pre id='SkNjY'><center id='SkNjY'></center></pre></bdo></b><th id='SkNjY'></th></span></q></dt></tr></i><div id='SkNjY'><tfoot id='SkNjY'></tfoot><dl id='SkNjY'><fieldset id='SkNjY'></fieldset></dl></div>
    2. <small id='SkNjY'></small><noframes id='SkNjY'>

        <tfoot id='SkNjY'></tfoot>
      1. 如何使用 Plotly 制作带有滑块的等值线图?

        时间:2023-09-30
        1. <legend id='LWRg5'><style id='LWRg5'><dir id='LWRg5'><q id='LWRg5'></q></dir></style></legend>

            <small id='LWRg5'></small><noframes id='LWRg5'>

            <tfoot id='LWRg5'></tfoot>
          • <i id='LWRg5'><tr id='LWRg5'><dt id='LWRg5'><q id='LWRg5'><span id='LWRg5'><b id='LWRg5'><form id='LWRg5'><ins id='LWRg5'></ins><ul id='LWRg5'></ul><sub id='LWRg5'></sub></form><legend id='LWRg5'></legend><bdo id='LWRg5'><pre id='LWRg5'><center id='LWRg5'></center></pre></bdo></b><th id='LWRg5'></th></span></q></dt></tr></i><div id='LWRg5'><tfoot id='LWRg5'></tfoot><dl id='LWRg5'><fieldset id='LWRg5'></fieldset></dl></div>
              <tbody id='LWRg5'></tbody>
              <bdo id='LWRg5'></bdo><ul id='LWRg5'></ul>
                  本文介绍了如何使用 Plotly 制作带有滑块的等值线图?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在重新创建

                  I'm recreating the example choropleth and trying to add a slider that, when dragged, would change from year to year. Another user asked a similar question but they didn't receive a reply. I did some more searching and found an example where the user generated random values for the additional years and created a slider but it's in JavaScript and I'm not sure how to translate it into Python.

                  Here's the code in JavaScript:

                  Plotly.d3.csv('https://raw.githubusercontent.com/plotly/datasets/master/2011_us_ag_exports.csv', function(err, rows){
                    function unpack(rows, key) {
                      return rows.map(function(row) { return row[key]; });
                    }
                  
                    var randomize = z => z.map(d => Math.pow(Math.random(), 2) * 30000);
                    var data = unpack(rows, 'total exports');
                    var frames = [{
                      data: [{z: unpack(rows, 'total exports')}],
                      traces: [0],
                      name: '1990',
                      layout: {title: '1990 US Agriculture Exports by State'}
                    }, {
                      data: [{z: randomize(data)}],
                      traces: [0],
                      name: '1995',
                      layout: {title: '1995 US Agriculture Exports by State'}
                    }, {
                      data: [{z: randomize(data)}],
                      traces: [0],
                      name: '2000',
                      layout: {title: '2000 US Agriculture Exports by State'}
                    }, {
                      data: [{z: randomize(data)}],
                      traces: [0],
                      name: '2005',
                      layout: {title: '2005 US Agriculture Exports by State'}
                    }]
                  
                    var data = [{
                      type: 'choropleth',
                      locationmode: 'USA-states',
                      locations: unpack(rows, 'code'),
                      z: unpack(rows, 'total exports'),
                      text: unpack(rows, 'state'),
                      zmin: 0,
                      zmax: 17000,
                      colorscale: [
                        [0, 'rgb(242,240,247)'], [0.2, 'rgb(218,218,235)'],
                        [0.4, 'rgb(188,189,220)'], [0.6, 'rgb(158,154,200)'],
                        [0.8, 'rgb(117,107,177)'], [1, 'rgb(84,39,143)']
                      ],
                      colorbar: {
                        title: 'Millions USD',
                        thickness: 0.2
                      },
                      marker: {
                        line:{
                          color: 'rgb(255,255,255)',
                          width: 2
                        }
                      }
                    }];
                  
                  
                    var layout = {
                      title: '1990 US Agriculture Exports by State',
                      geo:{
                        scope: 'usa',
                        showlakes: true,
                        lakecolor: 'rgb(255,255,255)'
                      },
                      xaxis: {autorange: false},
                      yaxis: {autorange: false},
                      sliders: [{
                        currentvalue: {
                          prefix: 'Year: ',
                        },
                        steps: frames.map(f => ({
                          label: f.name,
                          method: 'animate',
                          args: [[f.name], {frame: {duration: 0}}]
                        }))
                      }]
                    };
                  
                    Plotly.plot('graph', {
                      data: data,
                      layout: layout,
                      frames: frames,
                      config: {showLink: false}
                    });
                  });
                  

                  Is there a way to do this in Python?

                  解决方案

                  The code below is virtually a trimmed down version of the choropleth example for Python and the sliders code.

                  Randomized data is created based on the first data and each slider entry shows a different part of the data list.

                  import pandas as pd
                  import plotly
                  import numpy as np
                  
                  plotly.offline.init_notebook_mode()
                  df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/2011_us_ag_exports.csv')
                  
                  data = [dict(type='choropleth',
                               locations = df['code'].astype(str),
                               z=df['total exports'].astype(float),
                               locationmode='USA-states')]
                  
                  # let's create some additional, random data
                  for i in range(5):
                      data.append(data[0].copy())
                      data[-1]['z'] = data[0]['z'] * np.random.rand(*data[0]['z'].shape)
                  
                  # let's create the steps for the slider
                  steps = []
                  for i in range(len(data)):
                      step = dict(method='restyle',
                                  args=['visible', [False] * len(data)],
                                  label='Year {}'.format(i + 1980))
                      step['args'][1][i] = True
                      steps.append(step)
                  
                  sliders = [dict(active=0,
                                  pad={"t": 1},
                                  steps=steps)]    
                  layout = dict(geo=dict(scope='usa',
                                         projection={'type': 'albers usa'}),
                                sliders=sliders)
                  
                  fig = dict(data=data, 
                             layout=layout)
                  plotly.offline.iplot(fig)
                  

                  这篇关于如何使用 Plotly 制作带有滑块的等值线图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:获取 &lt;脚本&gt;和 &lt;div&gt;来自 Plotly 的标签使用 Py 下一篇:在 R markdown 中嵌入绘图输出

                  相关文章

                  1. <tfoot id='utysO'></tfoot>

                    • <bdo id='utysO'></bdo><ul id='utysO'></ul>
                    <i id='utysO'><tr id='utysO'><dt id='utysO'><q id='utysO'><span id='utysO'><b id='utysO'><form id='utysO'><ins id='utysO'></ins><ul id='utysO'></ul><sub id='utysO'></sub></form><legend id='utysO'></legend><bdo id='utysO'><pre id='utysO'><center id='utysO'></center></pre></bdo></b><th id='utysO'></th></span></q></dt></tr></i><div id='utysO'><tfoot id='utysO'></tfoot><dl id='utysO'><fieldset id='utysO'></fieldset></dl></div>

                    <small id='utysO'></small><noframes id='utysO'>

                  2. <legend id='utysO'><style id='utysO'><dir id='utysO'><q id='utysO'></q></dir></style></legend>