Skip to content

Commit

Permalink
Generated gh-pages for commit e95d623
Browse files Browse the repository at this point in the history
Author: Giulio Ungaretti <giulio.ungaretti@gmail.com>

    feature: Use unit in label (#495)
  • Loading branch information
Documentation Bot committed Mar 2, 2017
1 parent 0a42cd1 commit 4d38946
Show file tree
Hide file tree
Showing 7 changed files with 95 additions and 27 deletions.
54 changes: 40 additions & 14 deletions _modules/qcodes/plots/pyqtgraph.html
Original file line number Diff line number Diff line change
Expand Up @@ -310,17 +310,23 @@ <h1>Source code for qcodes.plots.pyqtgraph</h1><div class="highlight"><pre>
<span class="k">return</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_clean_array</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="p">[</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">]</span> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">]</span>

<span class="k">def</span> <span class="nf">_draw_image</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">subplot_object</span><span class="p">,</span> <span class="n">z</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="s1">&#39;hot&#39;</span><span class="p">,</span>
<span class="n">zlabel</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
<span class="n">zunit</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
<span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="n">img</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">rpg</span><span class="o">.</span><span class="n">ImageItem</span><span class="p">()</span>
<span class="n">subplot_object</span><span class="o">.</span><span class="n">addItem</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>

<span class="n">hist</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">rpg</span><span class="o">.</span><span class="n">HistogramLUTItem</span><span class="p">()</span>
<span class="n">hist</span><span class="o">.</span><span class="n">setImageItem</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
<span class="n">hist</span><span class="o">.</span><span class="n">axis</span><span class="o">.</span><span class="n">setPen</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">theme</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
<span class="k">if</span> <span class="s1">&#39;zlabel&#39;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span> <span class="c1"># used to specify a custom zlabel</span>
<span class="n">hist</span><span class="o">.</span><span class="n">axis</span><span class="o">.</span><span class="n">setLabel</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;zlabel&#39;</span><span class="p">])</span>
<span class="k">else</span><span class="p">:</span> <span class="c1"># otherwise extracts the label from the dataarray</span>
<span class="n">hist</span><span class="o">.</span><span class="n">axis</span><span class="o">.</span><span class="n">setLabel</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">get_label</span><span class="p">(</span><span class="n">z</span><span class="p">))</span>

<span class="k">if</span> <span class="n">zunit</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">_</span><span class="p">,</span> <span class="n">zunit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_label</span><span class="p">(</span><span class="n">z</span><span class="p">)</span>
<span class="k">if</span> <span class="n">zlabel</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">zlabel</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_label</span><span class="p">(</span><span class="n">z</span><span class="p">)</span>

<span class="n">hist</span><span class="o">.</span><span class="n">axis</span><span class="o">.</span><span class="n">setLabel</span><span class="p">(</span><span class="n">zlabel</span><span class="p">,</span> <span class="n">zunit</span><span class="p">)</span>

<span class="c1"># TODO - ensure this goes next to the correct subplot?</span>
<span class="bp">self</span><span class="o">.</span><span class="n">win</span><span class="o">.</span><span class="n">addItem</span><span class="p">(</span><span class="n">hist</span><span class="p">)</span>

Expand Down Expand Up @@ -501,22 +507,42 @@ <h1>Source code for qcodes.plots.pyqtgraph</h1><div class="highlight"><pre>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Updates x and y labels, by default tries to extract label from</span>
<span class="sd"> the DataArray objects located in the trace config. Custom labels</span>
<span class="sd"> can be specified the **kwargs &quot;xlabel&quot; and &quot;ylabel&quot;</span>
<span class="sd"> can be specified the **kwargs &quot;xlabel&quot; and &quot;ylabel&quot;. Custom units</span>
<span class="sd"> can be specified using the kwargs xunit, ylabel</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">for</span> <span class="n">axletter</span><span class="p">,</span> <span class="n">side</span> <span class="ow">in</span> <span class="p">((</span><span class="s1">&#39;x&#39;</span><span class="p">,</span> <span class="s1">&#39;bottom&#39;</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;y&#39;</span><span class="p">,</span> <span class="s1">&#39;left&#39;</span><span class="p">)):</span>
<span class="n">ax</span> <span class="o">=</span> <span class="n">subplot_object</span><span class="o">.</span><span class="n">getAxis</span><span class="p">(</span><span class="n">side</span><span class="p">)</span>
<span class="c1"># pyqtgraph doesn&#39;t seem able to get labels, only set</span>
<span class="c1"># so we&#39;ll store it in the axis object and hope the user</span>
<span class="c1"># doesn&#39;t set it separately before adding all traces</span>
<span class="c1"># danger: 🍝</span>
<span class="c1"># find if any kwarg from plot.add in the base class</span>
<span class="c1"># matches xlabel or ylabel, signaling a custom label</span>
<span class="k">if</span> <span class="n">axletter</span><span class="o">+</span><span class="s1">&#39;label&#39;</span> <span class="ow">in</span> <span class="n">config</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">ax</span><span class="o">.</span><span class="n">_qcodes_label</span><span class="p">:</span>
<span class="n">label</span> <span class="o">=</span> <span class="n">config</span><span class="p">[</span><span class="n">axletter</span><span class="o">+</span><span class="s1">&#39;label&#39;</span><span class="p">]</span>
<span class="n">ax</span><span class="o">.</span><span class="n">_qcodes_label</span> <span class="o">=</span> <span class="n">label</span>
<span class="n">ax</span><span class="o">.</span><span class="n">setLabel</span><span class="p">(</span><span class="n">label</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">label</span> <span class="o">=</span> <span class="kc">None</span>

<span class="c1"># find if any kwarg from plot.add in the base class</span>
<span class="c1"># matches xunit or yunit, signaling a custom unit</span>
<span class="k">if</span> <span class="n">axletter</span><span class="o">+</span><span class="s1">&#39;unit&#39;</span> <span class="ow">in</span> <span class="n">config</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">ax</span><span class="o">.</span><span class="n">_qcodes_label</span><span class="p">:</span>
<span class="n">unit</span> <span class="o">=</span> <span class="n">config</span><span class="p">[</span><span class="n">axletter</span><span class="o">+</span><span class="s1">&#39;unit&#39;</span><span class="p">]</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">unit</span> <span class="o">=</span> <span class="kc">None</span>

<span class="c1"># find ( more hope to) unit and label from</span>
<span class="c1"># the data array inside the config</span>
<span class="k">if</span> <span class="n">axletter</span> <span class="ow">in</span> <span class="n">config</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">ax</span><span class="o">.</span><span class="n">_qcodes_label</span><span class="p">:</span>
<span class="n">label</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_label</span><span class="p">(</span><span class="n">config</span><span class="p">[</span><span class="n">axletter</span><span class="p">])</span>
<span class="k">if</span> <span class="n">label</span><span class="p">:</span>
<span class="n">ax</span><span class="o">.</span><span class="n">_qcodes_label</span> <span class="o">=</span> <span class="n">label</span>
<span class="n">ax</span><span class="o">.</span><span class="n">setLabel</span><span class="p">(</span><span class="n">label</span><span class="p">)</span>
<span class="c1"># now if we did not have any kwark gor label or unit</span>
<span class="c1"># fallback to the data_array</span>
<span class="k">if</span> <span class="n">unit</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">_</span><span class="p">,</span> <span class="n">unit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_label</span><span class="p">(</span><span class="n">config</span><span class="p">[</span><span class="n">axletter</span><span class="p">])</span>
<span class="k">if</span> <span class="n">label</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
<span class="n">label</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_label</span><span class="p">(</span><span class="n">config</span><span class="p">[</span><span class="n">axletter</span><span class="p">])</span>

<span class="c1"># pyqtgraph doesn&#39;t seem able to get labels, only set</span>
<span class="c1"># so we&#39;ll store it in the axis object and hope the user</span>
<span class="c1"># doesn&#39;t set it separately before adding all traces</span>
<span class="n">ax</span><span class="o">.</span><span class="n">_qcodes_label</span> <span class="o">=</span> <span class="n">label</span>
<span class="n">ax</span><span class="o">.</span><span class="n">_qcodes_unit</span> <span class="o">=</span> <span class="n">unit</span>
<span class="n">ax</span><span class="o">.</span><span class="n">setLabel</span><span class="p">(</span><span class="n">label</span><span class="p">,</span> <span class="n">unit</span><span class="p">)</span>

<span class="k">def</span> <span class="nf">update_plot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">for</span> <span class="n">trace</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">traces</span><span class="p">:</span>
Expand Down
Loading

0 comments on commit 4d38946

Please sign in to comment.