plotmind 0.1.0__tar.gz → 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {plotmind-0.1.0/plotmind.egg-info → plotmind-0.1.1}/PKG-INFO +30 -44
- {plotmind-0.1.0 → plotmind-0.1.1}/README.md +26 -38
- {plotmind-0.1.0/plotmind → plotmind-0.1.1/backends}/cli.py +5 -5
- {plotmind-0.1.0 → plotmind-0.1.1/plotmind.egg-info}/PKG-INFO +30 -44
- {plotmind-0.1.0 → plotmind-0.1.1}/plotmind.egg-info/SOURCES.txt +3 -6
- {plotmind-0.1.0 → plotmind-0.1.1}/plotmind.egg-info/top_level.txt +1 -1
- {plotmind-0.1.0 → plotmind-0.1.1}/pyproject.toml +3 -3
- {plotmind-0.1.0 → plotmind-0.1.1}/setup.py +1 -1
- plotmind-0.1.0/LICENSE +0 -21
- plotmind-0.1.0/MANIFEST.in +0 -3
- plotmind-0.1.0/tests/__init__.py +0 -0
- {plotmind-0.1.0/plotmind → plotmind-0.1.1/backends}/exporter.py +0 -0
- {plotmind-0.1.0/plotmind → plotmind-0.1.1/backends}/utils.py +0 -0
- {plotmind-0.1.0 → plotmind-0.1.1}/plotmind/__init__.py +0 -0
- {plotmind-0.1.0 → plotmind-0.1.1}/plotmind/cleaner.py +0 -0
- {plotmind-0.1.0 → plotmind-0.1.1}/plotmind/detector.py +0 -0
- {plotmind-0.1.0 → plotmind-0.1.1}/plotmind/loader.py +0 -0
- {plotmind-0.1.0 → plotmind-0.1.1}/plotmind/plotter.py +0 -0
- {plotmind-0.1.0 → plotmind-0.1.1}/plotmind/recommender.py +0 -0
- {plotmind-0.1.0 → plotmind-0.1.1}/plotmind.egg-info/dependency_links.txt +0 -0
- {plotmind-0.1.0 → plotmind-0.1.1}/plotmind.egg-info/entry_points.txt +0 -0
- {plotmind-0.1.0 → plotmind-0.1.1}/plotmind.egg-info/requires.txt +0 -0
- {plotmind-0.1.0 → plotmind-0.1.1}/setup.cfg +0 -0
- {plotmind-0.1.0 → plotmind-0.1.1}/tests/test_plotmind.py +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: plotmind
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Convert any CSV into meaningful graphs automatically.
|
|
5
|
-
Home-page: https://github.com/
|
|
5
|
+
Home-page: https://github.com/git-rohan7/plotmind
|
|
6
6
|
Author: PlotMind Contributors
|
|
7
7
|
License: MIT
|
|
8
|
-
Project-URL: Homepage, https://github.com/
|
|
9
|
-
Project-URL: Issues, https://github.com/
|
|
8
|
+
Project-URL: Homepage, https://github.com/git-rohan7/plotmind
|
|
9
|
+
Project-URL: Issues, https://github.com/git-rohan7/plotmind/issues
|
|
10
10
|
Keywords: csv,visualization,charts,graphs,data,plotly,matplotlib
|
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
12
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -16,7 +16,6 @@ Classifier: Intended Audience :: Developers
|
|
|
16
16
|
Classifier: Intended Audience :: Science/Research
|
|
17
17
|
Requires-Python: >=3.8
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
|
-
License-File: LICENSE
|
|
20
19
|
Requires-Dist: pandas>=1.3.0
|
|
21
20
|
Requires-Dist: plotly>=5.0.0
|
|
22
21
|
Requires-Dist: matplotlib>=3.4.0
|
|
@@ -30,7 +29,6 @@ Requires-Dist: black; extra == "dev"
|
|
|
30
29
|
Requires-Dist: flake8; extra == "dev"
|
|
31
30
|
Dynamic: author
|
|
32
31
|
Dynamic: home-page
|
|
33
|
-
Dynamic: license-file
|
|
34
32
|
Dynamic: requires-python
|
|
35
33
|
|
|
36
34
|
# PlotMind 📊
|
|
@@ -50,7 +48,7 @@ pip install plotmind
|
|
|
50
48
|
Or install from source:
|
|
51
49
|
|
|
52
50
|
```bash
|
|
53
|
-
git clone https://github.com/
|
|
51
|
+
git clone https://github.com/git-rohan7/plotmind
|
|
54
52
|
cd plotmind
|
|
55
53
|
pip install -e .
|
|
56
54
|
```
|
|
@@ -104,15 +102,15 @@ plotmind sales.csv --info
|
|
|
104
102
|
|
|
105
103
|
## Features
|
|
106
104
|
|
|
107
|
-
| Feature
|
|
108
|
-
|
|
109
|
-
| **Auto-chart selection**
|
|
105
|
+
| Feature | Description |
|
|
106
|
+
| ------------------------- | ------------------------------------------------------------ |
|
|
107
|
+
| **Auto-chart selection** | Detects the best chart based on column types |
|
|
110
108
|
| **Column type detection** | Identifies numerical, categorical, datetime, boolean columns |
|
|
111
|
-
| **Data cleaning**
|
|
112
|
-
| **Interactive charts**
|
|
113
|
-
| **Static charts**
|
|
114
|
-
| **Export**
|
|
115
|
-
| **CLI**
|
|
109
|
+
| **Data cleaning** | Fills missing values, removes duplicates, fixes types |
|
|
110
|
+
| **Interactive charts** | Plotly backend for zoom/hover/pan |
|
|
111
|
+
| **Static charts** | Matplotlib backend for PNG/PDF output |
|
|
112
|
+
| **Export** | PNG, PDF, HTML, SVG |
|
|
113
|
+
| **CLI** | Full command-line interface |
|
|
116
114
|
|
|
117
115
|
---
|
|
118
116
|
|
|
@@ -120,21 +118,22 @@ plotmind sales.csv --info
|
|
|
120
118
|
|
|
121
119
|
PlotMind supports these chart types (auto-selected or manually chosen):
|
|
122
120
|
|
|
123
|
-
| Chart
|
|
124
|
-
|
|
125
|
-
| `histogram` | Single numerical column
|
|
126
|
-
| `bar`
|
|
127
|
-
| `pie`
|
|
128
|
-
| `scatter`
|
|
129
|
-
| `line`
|
|
130
|
-
| `heatmap`
|
|
131
|
-
| `box`
|
|
121
|
+
| Chart | When auto-selected |
|
|
122
|
+
| ----------- | ---------------------------------------------- |
|
|
123
|
+
| `histogram` | Single numerical column |
|
|
124
|
+
| `bar` | Categorical + numerical (high cardinality) |
|
|
125
|
+
| `pie` | Categorical + numerical (≤6 unique categories) |
|
|
126
|
+
| `scatter` | Two numerical columns |
|
|
127
|
+
| `line` | Datetime + numerical |
|
|
128
|
+
| `heatmap` | Many numerical columns (correlation matrix) |
|
|
129
|
+
| `box` | Box plot for distribution |
|
|
132
130
|
|
|
133
131
|
---
|
|
134
132
|
|
|
135
133
|
## API Reference
|
|
136
134
|
|
|
137
135
|
### `load_csv(filepath, **kwargs) → DataFrame`
|
|
136
|
+
|
|
138
137
|
Load a CSV and validate it.
|
|
139
138
|
|
|
140
139
|
```python
|
|
@@ -144,6 +143,7 @@ df = load_csv("data.csv")
|
|
|
144
143
|
---
|
|
145
144
|
|
|
146
145
|
### `clean_dataframe(df, verbose=False) → DataFrame`
|
|
146
|
+
|
|
147
147
|
Clean: fill missing values, remove duplicates, coerce types.
|
|
148
148
|
|
|
149
149
|
```python
|
|
@@ -153,6 +153,7 @@ df = clean_dataframe(df, verbose=True)
|
|
|
153
153
|
---
|
|
154
154
|
|
|
155
155
|
### `detect_columns(df) → dict`
|
|
156
|
+
|
|
156
157
|
Return a dict of `{column_name: type}` for each column.
|
|
157
158
|
Types: `numerical`, `categorical`, `datetime`, `boolean`, `unknown`.
|
|
158
159
|
|
|
@@ -165,6 +166,7 @@ types = detect_columns(df)
|
|
|
165
166
|
---
|
|
166
167
|
|
|
167
168
|
### `recommend_chart(df, x=None, y=None) → (chart, x_col, y_col)`
|
|
169
|
+
|
|
168
170
|
Recommend the best chart. Returns a tuple.
|
|
169
171
|
|
|
170
172
|
```python
|
|
@@ -176,6 +178,7 @@ print(chart) # e.g. 'scatter'
|
|
|
176
178
|
---
|
|
177
179
|
|
|
178
180
|
### `plot(df, chart=None, x=None, y=None, title=None, backend='plotly', show=True) → Figure`
|
|
181
|
+
|
|
179
182
|
Generate a chart. Returns the figure object.
|
|
180
183
|
|
|
181
184
|
```python
|
|
@@ -186,6 +189,7 @@ fig = plot(df, backend="matplotlib", show=False) # static, no display
|
|
|
186
189
|
---
|
|
187
190
|
|
|
188
191
|
### `export(fig, path, fmt=None) → str`
|
|
192
|
+
|
|
189
193
|
Export the figure. Format is inferred from the file extension.
|
|
190
194
|
|
|
191
195
|
```python
|
|
@@ -224,29 +228,11 @@ pytest tests/ -v
|
|
|
224
228
|
- pandas ≥ 1.3
|
|
225
229
|
- plotly ≥ 5.0
|
|
226
230
|
- matplotlib ≥ 3.4
|
|
227
|
-
- kaleido ≥ 0.2.1
|
|
231
|
+
- kaleido ≥ 0.2.1 _(for Plotly static image export)_
|
|
228
232
|
|
|
229
233
|
Optional:
|
|
230
|
-
- seaborn *(for nicer heatmaps with `pip install plotmind[seaborn]`)*
|
|
231
|
-
|
|
232
|
-
---
|
|
233
|
-
|
|
234
|
-
## Publishing to PyPI
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
pip install build twine
|
|
238
|
-
python -m build
|
|
239
|
-
twine upload dist/*
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
---
|
|
243
|
-
|
|
244
|
-
## Roadmap
|
|
245
234
|
|
|
246
|
-
-
|
|
247
|
-
- **v0.3** – Docs + PyPI release
|
|
248
|
-
- **v0.4** – AI prompt-based visualization (`plot(df, prompt="Show me trends over time")`)
|
|
249
|
-
- **v0.5** – Smart dashboards & auto-insights
|
|
235
|
+
- seaborn _(for nicer heatmaps with `pip install plotmind[seaborn]`)_
|
|
250
236
|
|
|
251
237
|
---
|
|
252
238
|
|
|
@@ -15,7 +15,7 @@ pip install plotmind
|
|
|
15
15
|
Or install from source:
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
git clone https://github.com/
|
|
18
|
+
git clone https://github.com/git-rohan7/plotmind
|
|
19
19
|
cd plotmind
|
|
20
20
|
pip install -e .
|
|
21
21
|
```
|
|
@@ -69,15 +69,15 @@ plotmind sales.csv --info
|
|
|
69
69
|
|
|
70
70
|
## Features
|
|
71
71
|
|
|
72
|
-
| Feature
|
|
73
|
-
|
|
74
|
-
| **Auto-chart selection**
|
|
72
|
+
| Feature | Description |
|
|
73
|
+
| ------------------------- | ------------------------------------------------------------ |
|
|
74
|
+
| **Auto-chart selection** | Detects the best chart based on column types |
|
|
75
75
|
| **Column type detection** | Identifies numerical, categorical, datetime, boolean columns |
|
|
76
|
-
| **Data cleaning**
|
|
77
|
-
| **Interactive charts**
|
|
78
|
-
| **Static charts**
|
|
79
|
-
| **Export**
|
|
80
|
-
| **CLI**
|
|
76
|
+
| **Data cleaning** | Fills missing values, removes duplicates, fixes types |
|
|
77
|
+
| **Interactive charts** | Plotly backend for zoom/hover/pan |
|
|
78
|
+
| **Static charts** | Matplotlib backend for PNG/PDF output |
|
|
79
|
+
| **Export** | PNG, PDF, HTML, SVG |
|
|
80
|
+
| **CLI** | Full command-line interface |
|
|
81
81
|
|
|
82
82
|
---
|
|
83
83
|
|
|
@@ -85,21 +85,22 @@ plotmind sales.csv --info
|
|
|
85
85
|
|
|
86
86
|
PlotMind supports these chart types (auto-selected or manually chosen):
|
|
87
87
|
|
|
88
|
-
| Chart
|
|
89
|
-
|
|
90
|
-
| `histogram` | Single numerical column
|
|
91
|
-
| `bar`
|
|
92
|
-
| `pie`
|
|
93
|
-
| `scatter`
|
|
94
|
-
| `line`
|
|
95
|
-
| `heatmap`
|
|
96
|
-
| `box`
|
|
88
|
+
| Chart | When auto-selected |
|
|
89
|
+
| ----------- | ---------------------------------------------- |
|
|
90
|
+
| `histogram` | Single numerical column |
|
|
91
|
+
| `bar` | Categorical + numerical (high cardinality) |
|
|
92
|
+
| `pie` | Categorical + numerical (≤6 unique categories) |
|
|
93
|
+
| `scatter` | Two numerical columns |
|
|
94
|
+
| `line` | Datetime + numerical |
|
|
95
|
+
| `heatmap` | Many numerical columns (correlation matrix) |
|
|
96
|
+
| `box` | Box plot for distribution |
|
|
97
97
|
|
|
98
98
|
---
|
|
99
99
|
|
|
100
100
|
## API Reference
|
|
101
101
|
|
|
102
102
|
### `load_csv(filepath, **kwargs) → DataFrame`
|
|
103
|
+
|
|
103
104
|
Load a CSV and validate it.
|
|
104
105
|
|
|
105
106
|
```python
|
|
@@ -109,6 +110,7 @@ df = load_csv("data.csv")
|
|
|
109
110
|
---
|
|
110
111
|
|
|
111
112
|
### `clean_dataframe(df, verbose=False) → DataFrame`
|
|
113
|
+
|
|
112
114
|
Clean: fill missing values, remove duplicates, coerce types.
|
|
113
115
|
|
|
114
116
|
```python
|
|
@@ -118,6 +120,7 @@ df = clean_dataframe(df, verbose=True)
|
|
|
118
120
|
---
|
|
119
121
|
|
|
120
122
|
### `detect_columns(df) → dict`
|
|
123
|
+
|
|
121
124
|
Return a dict of `{column_name: type}` for each column.
|
|
122
125
|
Types: `numerical`, `categorical`, `datetime`, `boolean`, `unknown`.
|
|
123
126
|
|
|
@@ -130,6 +133,7 @@ types = detect_columns(df)
|
|
|
130
133
|
---
|
|
131
134
|
|
|
132
135
|
### `recommend_chart(df, x=None, y=None) → (chart, x_col, y_col)`
|
|
136
|
+
|
|
133
137
|
Recommend the best chart. Returns a tuple.
|
|
134
138
|
|
|
135
139
|
```python
|
|
@@ -141,6 +145,7 @@ print(chart) # e.g. 'scatter'
|
|
|
141
145
|
---
|
|
142
146
|
|
|
143
147
|
### `plot(df, chart=None, x=None, y=None, title=None, backend='plotly', show=True) → Figure`
|
|
148
|
+
|
|
144
149
|
Generate a chart. Returns the figure object.
|
|
145
150
|
|
|
146
151
|
```python
|
|
@@ -151,6 +156,7 @@ fig = plot(df, backend="matplotlib", show=False) # static, no display
|
|
|
151
156
|
---
|
|
152
157
|
|
|
153
158
|
### `export(fig, path, fmt=None) → str`
|
|
159
|
+
|
|
154
160
|
Export the figure. Format is inferred from the file extension.
|
|
155
161
|
|
|
156
162
|
```python
|
|
@@ -189,29 +195,11 @@ pytest tests/ -v
|
|
|
189
195
|
- pandas ≥ 1.3
|
|
190
196
|
- plotly ≥ 5.0
|
|
191
197
|
- matplotlib ≥ 3.4
|
|
192
|
-
- kaleido ≥ 0.2.1
|
|
198
|
+
- kaleido ≥ 0.2.1 _(for Plotly static image export)_
|
|
193
199
|
|
|
194
200
|
Optional:
|
|
195
|
-
- seaborn *(for nicer heatmaps with `pip install plotmind[seaborn]`)*
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
## Publishing to PyPI
|
|
200
|
-
|
|
201
|
-
```bash
|
|
202
|
-
pip install build twine
|
|
203
|
-
python -m build
|
|
204
|
-
twine upload dist/*
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
---
|
|
208
|
-
|
|
209
|
-
## Roadmap
|
|
210
201
|
|
|
211
|
-
-
|
|
212
|
-
- **v0.3** – Docs + PyPI release
|
|
213
|
-
- **v0.4** – AI prompt-based visualization (`plot(df, prompt="Show me trends over time")`)
|
|
214
|
-
- **v0.5** – Smart dashboards & auto-insights
|
|
202
|
+
- seaborn _(for nicer heatmaps with `pip install plotmind[seaborn]`)_
|
|
215
203
|
|
|
216
204
|
---
|
|
217
205
|
|
|
@@ -12,12 +12,12 @@ Usage:
|
|
|
12
12
|
import argparse
|
|
13
13
|
import sys
|
|
14
14
|
|
|
15
|
-
from .loader import load_csv
|
|
16
|
-
from .cleaner import clean_dataframe
|
|
17
|
-
from .recommender import recommend_chart, CHART_TYPES
|
|
18
|
-
from .plotter import plot
|
|
15
|
+
from ..plotmind.loader import load_csv
|
|
16
|
+
from ..plotmind.cleaner import clean_dataframe
|
|
17
|
+
from ..plotmind.recommender import recommend_chart, CHART_TYPES
|
|
18
|
+
from ..plotmind.plotter import plot
|
|
19
19
|
from .exporter import export
|
|
20
|
-
from .detector import summarize_columns
|
|
20
|
+
from ..plotmind.detector import summarize_columns
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
def main():
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: plotmind
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1
|
|
4
4
|
Summary: Convert any CSV into meaningful graphs automatically.
|
|
5
|
-
Home-page: https://github.com/
|
|
5
|
+
Home-page: https://github.com/git-rohan7/plotmind
|
|
6
6
|
Author: PlotMind Contributors
|
|
7
7
|
License: MIT
|
|
8
|
-
Project-URL: Homepage, https://github.com/
|
|
9
|
-
Project-URL: Issues, https://github.com/
|
|
8
|
+
Project-URL: Homepage, https://github.com/git-rohan7/plotmind
|
|
9
|
+
Project-URL: Issues, https://github.com/git-rohan7/plotmind/issues
|
|
10
10
|
Keywords: csv,visualization,charts,graphs,data,plotly,matplotlib
|
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
12
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -16,7 +16,6 @@ Classifier: Intended Audience :: Developers
|
|
|
16
16
|
Classifier: Intended Audience :: Science/Research
|
|
17
17
|
Requires-Python: >=3.8
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
|
-
License-File: LICENSE
|
|
20
19
|
Requires-Dist: pandas>=1.3.0
|
|
21
20
|
Requires-Dist: plotly>=5.0.0
|
|
22
21
|
Requires-Dist: matplotlib>=3.4.0
|
|
@@ -30,7 +29,6 @@ Requires-Dist: black; extra == "dev"
|
|
|
30
29
|
Requires-Dist: flake8; extra == "dev"
|
|
31
30
|
Dynamic: author
|
|
32
31
|
Dynamic: home-page
|
|
33
|
-
Dynamic: license-file
|
|
34
32
|
Dynamic: requires-python
|
|
35
33
|
|
|
36
34
|
# PlotMind 📊
|
|
@@ -50,7 +48,7 @@ pip install plotmind
|
|
|
50
48
|
Or install from source:
|
|
51
49
|
|
|
52
50
|
```bash
|
|
53
|
-
git clone https://github.com/
|
|
51
|
+
git clone https://github.com/git-rohan7/plotmind
|
|
54
52
|
cd plotmind
|
|
55
53
|
pip install -e .
|
|
56
54
|
```
|
|
@@ -104,15 +102,15 @@ plotmind sales.csv --info
|
|
|
104
102
|
|
|
105
103
|
## Features
|
|
106
104
|
|
|
107
|
-
| Feature
|
|
108
|
-
|
|
109
|
-
| **Auto-chart selection**
|
|
105
|
+
| Feature | Description |
|
|
106
|
+
| ------------------------- | ------------------------------------------------------------ |
|
|
107
|
+
| **Auto-chart selection** | Detects the best chart based on column types |
|
|
110
108
|
| **Column type detection** | Identifies numerical, categorical, datetime, boolean columns |
|
|
111
|
-
| **Data cleaning**
|
|
112
|
-
| **Interactive charts**
|
|
113
|
-
| **Static charts**
|
|
114
|
-
| **Export**
|
|
115
|
-
| **CLI**
|
|
109
|
+
| **Data cleaning** | Fills missing values, removes duplicates, fixes types |
|
|
110
|
+
| **Interactive charts** | Plotly backend for zoom/hover/pan |
|
|
111
|
+
| **Static charts** | Matplotlib backend for PNG/PDF output |
|
|
112
|
+
| **Export** | PNG, PDF, HTML, SVG |
|
|
113
|
+
| **CLI** | Full command-line interface |
|
|
116
114
|
|
|
117
115
|
---
|
|
118
116
|
|
|
@@ -120,21 +118,22 @@ plotmind sales.csv --info
|
|
|
120
118
|
|
|
121
119
|
PlotMind supports these chart types (auto-selected or manually chosen):
|
|
122
120
|
|
|
123
|
-
| Chart
|
|
124
|
-
|
|
125
|
-
| `histogram` | Single numerical column
|
|
126
|
-
| `bar`
|
|
127
|
-
| `pie`
|
|
128
|
-
| `scatter`
|
|
129
|
-
| `line`
|
|
130
|
-
| `heatmap`
|
|
131
|
-
| `box`
|
|
121
|
+
| Chart | When auto-selected |
|
|
122
|
+
| ----------- | ---------------------------------------------- |
|
|
123
|
+
| `histogram` | Single numerical column |
|
|
124
|
+
| `bar` | Categorical + numerical (high cardinality) |
|
|
125
|
+
| `pie` | Categorical + numerical (≤6 unique categories) |
|
|
126
|
+
| `scatter` | Two numerical columns |
|
|
127
|
+
| `line` | Datetime + numerical |
|
|
128
|
+
| `heatmap` | Many numerical columns (correlation matrix) |
|
|
129
|
+
| `box` | Box plot for distribution |
|
|
132
130
|
|
|
133
131
|
---
|
|
134
132
|
|
|
135
133
|
## API Reference
|
|
136
134
|
|
|
137
135
|
### `load_csv(filepath, **kwargs) → DataFrame`
|
|
136
|
+
|
|
138
137
|
Load a CSV and validate it.
|
|
139
138
|
|
|
140
139
|
```python
|
|
@@ -144,6 +143,7 @@ df = load_csv("data.csv")
|
|
|
144
143
|
---
|
|
145
144
|
|
|
146
145
|
### `clean_dataframe(df, verbose=False) → DataFrame`
|
|
146
|
+
|
|
147
147
|
Clean: fill missing values, remove duplicates, coerce types.
|
|
148
148
|
|
|
149
149
|
```python
|
|
@@ -153,6 +153,7 @@ df = clean_dataframe(df, verbose=True)
|
|
|
153
153
|
---
|
|
154
154
|
|
|
155
155
|
### `detect_columns(df) → dict`
|
|
156
|
+
|
|
156
157
|
Return a dict of `{column_name: type}` for each column.
|
|
157
158
|
Types: `numerical`, `categorical`, `datetime`, `boolean`, `unknown`.
|
|
158
159
|
|
|
@@ -165,6 +166,7 @@ types = detect_columns(df)
|
|
|
165
166
|
---
|
|
166
167
|
|
|
167
168
|
### `recommend_chart(df, x=None, y=None) → (chart, x_col, y_col)`
|
|
169
|
+
|
|
168
170
|
Recommend the best chart. Returns a tuple.
|
|
169
171
|
|
|
170
172
|
```python
|
|
@@ -176,6 +178,7 @@ print(chart) # e.g. 'scatter'
|
|
|
176
178
|
---
|
|
177
179
|
|
|
178
180
|
### `plot(df, chart=None, x=None, y=None, title=None, backend='plotly', show=True) → Figure`
|
|
181
|
+
|
|
179
182
|
Generate a chart. Returns the figure object.
|
|
180
183
|
|
|
181
184
|
```python
|
|
@@ -186,6 +189,7 @@ fig = plot(df, backend="matplotlib", show=False) # static, no display
|
|
|
186
189
|
---
|
|
187
190
|
|
|
188
191
|
### `export(fig, path, fmt=None) → str`
|
|
192
|
+
|
|
189
193
|
Export the figure. Format is inferred from the file extension.
|
|
190
194
|
|
|
191
195
|
```python
|
|
@@ -224,29 +228,11 @@ pytest tests/ -v
|
|
|
224
228
|
- pandas ≥ 1.3
|
|
225
229
|
- plotly ≥ 5.0
|
|
226
230
|
- matplotlib ≥ 3.4
|
|
227
|
-
- kaleido ≥ 0.2.1
|
|
231
|
+
- kaleido ≥ 0.2.1 _(for Plotly static image export)_
|
|
228
232
|
|
|
229
233
|
Optional:
|
|
230
|
-
- seaborn *(for nicer heatmaps with `pip install plotmind[seaborn]`)*
|
|
231
|
-
|
|
232
|
-
---
|
|
233
|
-
|
|
234
|
-
## Publishing to PyPI
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
pip install build twine
|
|
238
|
-
python -m build
|
|
239
|
-
twine upload dist/*
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
---
|
|
243
|
-
|
|
244
|
-
## Roadmap
|
|
245
234
|
|
|
246
|
-
-
|
|
247
|
-
- **v0.3** – Docs + PyPI release
|
|
248
|
-
- **v0.4** – AI prompt-based visualization (`plot(df, prompt="Show me trends over time")`)
|
|
249
|
-
- **v0.5** – Smart dashboards & auto-insights
|
|
235
|
+
- seaborn _(for nicer heatmaps with `pip install plotmind[seaborn]`)_
|
|
250
236
|
|
|
251
237
|
---
|
|
252
238
|
|
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
LICENSE
|
|
2
|
-
MANIFEST.in
|
|
3
1
|
README.md
|
|
4
2
|
pyproject.toml
|
|
5
3
|
setup.py
|
|
4
|
+
backends/cli.py
|
|
5
|
+
backends/exporter.py
|
|
6
|
+
backends/utils.py
|
|
6
7
|
plotmind/__init__.py
|
|
7
8
|
plotmind/cleaner.py
|
|
8
|
-
plotmind/cli.py
|
|
9
9
|
plotmind/detector.py
|
|
10
|
-
plotmind/exporter.py
|
|
11
10
|
plotmind/loader.py
|
|
12
11
|
plotmind/plotter.py
|
|
13
12
|
plotmind/recommender.py
|
|
14
|
-
plotmind/utils.py
|
|
15
13
|
plotmind.egg-info/PKG-INFO
|
|
16
14
|
plotmind.egg-info/SOURCES.txt
|
|
17
15
|
plotmind.egg-info/dependency_links.txt
|
|
18
16
|
plotmind.egg-info/entry_points.txt
|
|
19
17
|
plotmind.egg-info/requires.txt
|
|
20
18
|
plotmind.egg-info/top_level.txt
|
|
21
|
-
tests/__init__.py
|
|
22
19
|
tests/test_plotmind.py
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "plotmind"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.1"
|
|
8
8
|
description = "Convert any CSV into meaningful graphs automatically."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.8"
|
|
@@ -33,8 +33,8 @@ dev = ["pytest>=7.0", "pytest-cov", "black", "flake8"]
|
|
|
33
33
|
plotmind = "plotmind.cli:main"
|
|
34
34
|
|
|
35
35
|
[project.urls]
|
|
36
|
-
Homepage = "https://github.com/
|
|
37
|
-
Issues = "https://github.com/
|
|
36
|
+
Homepage = "https://github.com/git-rohan7/plotmind"
|
|
37
|
+
Issues = "https://github.com/git-rohan7/plotmind/issues"
|
|
38
38
|
|
|
39
39
|
[tool.setuptools.packages.find]
|
|
40
40
|
where = ["."]
|
|
@@ -10,7 +10,7 @@ setup(
|
|
|
10
10
|
description="Convert any CSV into meaningful graphs automatically.",
|
|
11
11
|
long_description=long_description,
|
|
12
12
|
long_description_content_type="text/markdown",
|
|
13
|
-
url="https://github.com/
|
|
13
|
+
url="https://github.com/git-rohan7/plotmind",
|
|
14
14
|
packages=find_packages(),
|
|
15
15
|
python_requires=">=3.8",
|
|
16
16
|
install_requires=[
|
plotmind-0.1.0/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2024 PlotMind Contributors
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
plotmind-0.1.0/MANIFEST.in
DELETED
plotmind-0.1.0/tests/__init__.py
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|