Socket
Socket
Sign inDemoInstall

season-polar-plots

Package Overview
Dependencies
5
Maintainers
1
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    season-polar-plots

Create polar plots to display seasonal trends in time series data.


Maintainers
1

Readme

Seasonality polar plots

pip install season-polar-plots

This is a package to create polar plots for displaying seasonal trends in time series data. Requires

  • matplotlib (3.5.1)
  • numpy (1.19.2)
  • pandas (1.3.5)
  • seaborn (0.11.2)
  • scipy (1.6.0)

1. Read data into SeasonData class:

>>> from season_polar_plots import SeasonData

SeasonData(data, year_start, year_end, t_res)

Parameters
datapandas Series or single column DataFrame with datetime index
year_start(int) start year of period to be analyzed
year_end(int) end year of period to be analyzed
t_res(str) 'daily' or 'monthly': temporal resolution. Monthly values can be aggregated from daily values if 'monthly' is chosen (see sp_plot() and get_mgrid() function)

2. Plot function:

self.sp_plot(mode = 'all', label=None ,rd_years = True, col = 'viridis_r', a = 1, psize = None, pmarker = None, nylabels = 10, off = 0, rlab_angle = 15, linreg = False, start_month = 1)

Parameters
label(str) label for time series variable
mode(str) 'all' uses all data points; daily resolution: 'min' or 'max' filter time series on annual extreme values; monthly resolution: 'sum', 'mean' / 'min', 'max' aggregate / filter data for each month
rd_years(bool) as default, years are plotted in radius direction; rd_years=False plots variable in radius direction
col(str) color gradient (default 'viridis_r')
a(float) transparency alpha (0-1)
psize(float) marker size for daily data points
pmarker(MarkerStyle) marker style for daily data points
nylabels(int) number of (year) labels in radius direction
off(int or float) off-set from circle center
rlab_angle(float) angle of the radius axis labels
linreg(bool) if True plots linear regression (day in year ~ year) in polar projection (only for daily extreme values)
start_month(int) start month for linear regression

Returns: Plot; if linreg=True prints R² and p-values for slope and intercept

Obtain annual extreme values from daily time series:

self.get_ev( mode)

Parameters
mode(str) 'min' or 'max': filter time series on annual extreme values

Returns: DataFrame (containing nr of day in year of extreme values, extreme values)

Obtain aggregated / filtered monthly values:

self.get_mgrid(mode)

Parameters
mode(str) 'all' if data is already in monthly resolution; 'sum', 'mean' / 'min', 'max' aggregate / filter data for each month

Returns: DataFrame (containing monthly data)

3. Von-Mises distribution (ML fit with scipy):

self.von_mises(mode, plot = True, print_par = True, bins = 15, col_hist = 'b', col_vm ='r', off = 0.1, a = 1, rwidth = 0.8)

Parameters
mode(str) 'all' to use all data points, 'min' or 'max' to filter on extreme values
plot(bool) if True plots the data as circular histogram and fitted von-Mises distribution
print_par(bool) if True prints the fitted von-Mises parameters kappa and mu
bins(int) number of bins for histogram
col_hist(str) color of the histogram
col_vm(str) color of the fitted von Mises distribution
off(float) off-set from circle center
a(float) transparency alpha (0-1)
rwidth(float) relative width of histogram bins

Returns: Plot; kappa, mu, mu_nday

FAQs


Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc