.. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_vector_plot_1_vector.py: Vector, 2D{2} dataset ^^^^^^^^^^^^^^^^^^^^^ The 2D{2} datasets are two-dimensional, :math:`d=2`, with one two-component dependent variable, :math:`p=2`. The following is an example of a simulated electric field vector dataset of a dipole as a function of two linearly sampled spatial dimensions. .. code-block:: default import csdmpy as cp filename = "https://osu.box.com/shared/static/iobasl6fx1z7rds3ovamrwueek8ver5o.csdf" vector_data = cp.load(filename) print(vector_data.data_structure) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none { "csdm": { "version": "1.0", "read_only": true, "timestamp": "2014-09-30T11:16:33Z", "description": "A simulated electric field dataset from an electric dipole.", "dimensions": [ { "type": "linear", "count": 64, "increment": "0.0625 cm", "coordinates_offset": "-2.0 cm", "quantity_name": "length", "label": "x", "reciprocal": { "quantity_name": "wavenumber" } }, { "type": "linear", "count": 64, "increment": "0.0625 cm", "coordinates_offset": "-2.0 cm", "quantity_name": "length", "label": "y", "reciprocal": { "quantity_name": "wavenumber" } } ], "dependent_variables": [ { "type": "internal", "name": "Electric field lines", "unit": "C^-1 * N", "quantity_name": "electric field strength", "numeric_type": "float32", "quantity_type": "vector_2", "components": [ [ "3.7466873e-07, 3.3365018e-07, ..., 3.5343004e-07, 4.0100363e-07" ], [ "1.6129676e-06, 1.6765767e-06, ..., 1.846712e-06, 1.7754871e-06" ] ] } ] } } The tuple of the dimension and dependent variable instances from this example are .. code-block:: default x = vector_data.dimensions y = vector_data.dependent_variables with the respective coordinates (viewed only up to five values), as .. code-block:: default print(x[0].coordinates[:5]) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [-2. -1.9375 -1.875 -1.8125 -1.75 ] cm .. code-block:: default print(x[1].coordinates[:5]) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [-2. -1.9375 -1.875 -1.8125 -1.75 ] cm The components of the dependent variable are vector components as seen from the :attr:`~csdmpy.DependentVariable.quantity_type` attribute of the corresponding dependent variable instance. .. code-block:: default print(y[0].quantity_type) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none vector_2 **Visualizing the dataset** Let's visualize the vector data using the *streamplot* method from the matplotlib package. Before we could visualize, however, there is an initial processing step. We use the Numpy library for processing. .. code-block:: default import numpy as np X, Y = np.meshgrid(x[0].coordinates, x[1].coordinates) # (x, y) coordinate pairs U, V = y[0].components[0], y[0].components[1] # U and V are the components R = np.sqrt(U ** 2 + V ** 2) # The magnitude of the vector R /= R.min() # Scaled magnitude of the vector Rlog = np.log10(R) # Scaled magnitude of the vector on a log scale In the above steps, we calculate the X-Y grid points along with a scaled magnitude of the vector dataset. The magnitude is scaled such that the minimum value is one. Next, calculate the log of the scaled magnitude to visualize the intensity on a logarithmic scale. And now, the streamplot vector plot .. code-block:: default import matplotlib.pyplot as plt plt.streamplot( X.value, Y.value, U, V, density=1, linewidth=Rlog, color=Rlog, cmap="viridis" ) plt.xlim([x[0].coordinates[0].value, x[0].coordinates[-1].value]) plt.ylim([x[1].coordinates[0].value, x[1].coordinates[-1].value]) # Set axes labels and figure title. plt.xlabel(x[0].axis_label) plt.ylabel(x[1].axis_label) plt.title(y[0].name) # Set grid lines. plt.grid(color="gray", linestyle="--", linewidth=0.5) plt.tight_layout() plt.show() .. image:: /auto_examples/vector/images/sphx_glr_plot_1_vector_001.png :alt: Electric field lines :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 1.956 seconds) .. _sphx_glr_download_auto_examples_vector_plot_1_vector.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_1_vector.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_1_vector.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_