research-copilot 0.1.0
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.
- package/LICENSE +21 -0
- package/README.md +190 -0
- package/app/build/icon.icns +0 -0
- package/app/build/icon.ico +0 -0
- package/app/build/icon.png +0 -0
- package/app/out/main/index.mjs +6719 -0
- package/app/out/preload/index.js +141 -0
- package/app/out/renderer/assets/Inter-Variable-Latin-8kRkwJBP.woff2 +0 -0
- package/app/out/renderer/assets/Inter-Variable-LatinExt-B_-bZUTo.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/app/out/renderer/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/app/out/renderer/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/app/out/renderer/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/app/out/renderer/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/app/out/renderer/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/app/out/renderer/assets/MilkdownMarkdownEditor-bLPxrCVb.js +89821 -0
- package/app/out/renderer/assets/MilkdownMarkdownEditor-tTNRIB2K.css +2555 -0
- package/app/out/renderer/assets/Tableau10-BqnYsPR6.js +9 -0
- package/app/out/renderer/assets/apl-fqmucPXA.js +140 -0
- package/app/out/renderer/assets/arc-J47ePHZ2.js +132 -0
- package/app/out/renderer/assets/array-DgktLKBx.js +6 -0
- package/app/out/renderer/assets/asciiarmor-DucZyvP0.js +56 -0
- package/app/out/renderer/assets/asn1-BnOEsgAm.js +144 -0
- package/app/out/renderer/assets/asterisk-QAlztEwS.js +345 -0
- package/app/out/renderer/assets/blockDiagram-c4efeb88-5uRQXgQJ.js +1817 -0
- package/app/out/renderer/assets/brainfuck-DZVCuF_t.js +53 -0
- package/app/out/renderer/assets/c4Diagram-c83219d4-C4iCTPEL.js +2464 -0
- package/app/out/renderer/assets/channel-ZAmhHE3g.js +7 -0
- package/app/out/renderer/assets/classDiagram-beda092f-7NOZxq_W.js +357 -0
- package/app/out/renderer/assets/classDiagram-v2-2358418a-5fPT-cUH.js +291 -0
- package/app/out/renderer/assets/clike-xqXYL6ge.js +805 -0
- package/app/out/renderer/assets/clojure-BhXMqnxz.js +849 -0
- package/app/out/renderer/assets/clone-CsnzsYXQ.js +8 -0
- package/app/out/renderer/assets/cmake-BGaNd9E7.js +71 -0
- package/app/out/renderer/assets/cobol-4yqQntpt.js +120 -0
- package/app/out/renderer/assets/coffeescript-D2dXvhEc.js +308 -0
- package/app/out/renderer/assets/commonlisp-CF_VNHQR.js +130 -0
- package/app/out/renderer/assets/createText-1719965b-Cji7KN4K.js +4904 -0
- package/app/out/renderer/assets/crystal-DyuLTqLs.js +398 -0
- package/app/out/renderer/assets/css-c-jst79C.js +1783 -0
- package/app/out/renderer/assets/cypher-Dlu_3r4V.js +121 -0
- package/app/out/renderer/assets/d-UURgV0Ux.js +179 -0
- package/app/out/renderer/assets/diff-B_Bi2Crb.js +25 -0
- package/app/out/renderer/assets/dockerfile-Bvk733Ga.js +201 -0
- package/app/out/renderer/assets/dtd-Dy74G54E.js +114 -0
- package/app/out/renderer/assets/dylan-TSb-Nfix.js +314 -0
- package/app/out/renderer/assets/ebnf-DAomQUbD.js +139 -0
- package/app/out/renderer/assets/ecl-B59qGGVg.js +178 -0
- package/app/out/renderer/assets/edges-96097737-CD0EvAZQ.js +1844 -0
- package/app/out/renderer/assets/eiffel-Dze7nlu3.js +134 -0
- package/app/out/renderer/assets/elm-DG7jkhNZ.js +176 -0
- package/app/out/renderer/assets/erDiagram-0228fc6a-DRYXBpi7.js +1321 -0
- package/app/out/renderer/assets/erlang-BO6gOnGA.js +674 -0
- package/app/out/renderer/assets/factor-CMxFHDqz.js +65 -0
- package/app/out/renderer/assets/fcl-CDDUNjTj.js +141 -0
- package/app/out/renderer/assets/flowDb-c6c81e3f-CuoIN-Cy.js +1713 -0
- package/app/out/renderer/assets/flowDiagram-50d868cf-CPWPLOml.js +1272 -0
- package/app/out/renderer/assets/flowDiagram-v2-4f6560a1-C_R12s4S.js +33 -0
- package/app/out/renderer/assets/flowchart-elk-definition-6af322e1-BdKUSFpi.js +92921 -0
- package/app/out/renderer/assets/forth-B9D2JCeE.js +116 -0
- package/app/out/renderer/assets/fortran-CAG2BFbe.js +467 -0
- package/app/out/renderer/assets/ganttDiagram-a2739b55-ygqT5HlG.js +3399 -0
- package/app/out/renderer/assets/gas-d3KEcW3x.js +294 -0
- package/app/out/renderer/assets/gherkin-DhZlEZiy.js +115 -0
- package/app/out/renderer/assets/gitGraphDiagram-82fe8481-D97GT4iA.js +1791 -0
- package/app/out/renderer/assets/graph-DpC13d95.js +1237 -0
- package/app/out/renderer/assets/groovy-CpwJiBl7.js +223 -0
- package/app/out/renderer/assets/haskell-BlGBCCe3.js +459 -0
- package/app/out/renderer/assets/haxe-7MlzfeYV.js +514 -0
- package/app/out/renderer/assets/http-BqypyemW.js +79 -0
- package/app/out/renderer/assets/idl-4HIGJlDI.js +985 -0
- package/app/out/renderer/assets/index-4-ziknCv.js +292 -0
- package/app/out/renderer/assets/index-5325376f-Bbs7Fbqr.js +663 -0
- package/app/out/renderer/assets/index-B2jip-rk.js +2489 -0
- package/app/out/renderer/assets/index-BKTVfokE.js +312 -0
- package/app/out/renderer/assets/index-BiJbFgVG.js +118 -0
- package/app/out/renderer/assets/index-Bn433Fat.js +83 -0
- package/app/out/renderer/assets/index-BqDyyRCx.js +39679 -0
- package/app/out/renderer/assets/index-BzFMeMPn.js +158 -0
- package/app/out/renderer/assets/index-C-_uCjZJ.css +2701 -0
- package/app/out/renderer/assets/index-C1ithNW1.js +1765 -0
- package/app/out/renderer/assets/index-CAJkRYkO.js +407 -0
- package/app/out/renderer/assets/index-CleO0-yj.js +690 -0
- package/app/out/renderer/assets/index-Cq4MH3sY.js +1020 -0
- package/app/out/renderer/assets/index-CtA0Xj22.js +705 -0
- package/app/out/renderer/assets/index-CvAZkqBZ.js +83 -0
- package/app/out/renderer/assets/index-D3UDN-5c.js +152 -0
- package/app/out/renderer/assets/index-D4F9R5ao.js +179 -0
- package/app/out/renderer/assets/index-D6RguhZ5.js +328 -0
- package/app/out/renderer/assets/index-DnEowqXv.js +386 -0
- package/app/out/renderer/assets/index-K8c8Mqdy.js +98 -0
- package/app/out/renderer/assets/index-Kh14gO6K.js +62 -0
- package/app/out/renderer/assets/index-WFd2jRnA.js +333 -0
- package/app/out/renderer/assets/index-WgMfkRFp.js +313 -0
- package/app/out/renderer/assets/index-Y4lKyF6t.js +1042 -0
- package/app/out/renderer/assets/index-fx307_f1.js +643 -0
- package/app/out/renderer/assets/infoDiagram-8eee0895-ptaVSwzq.js +511 -0
- package/app/out/renderer/assets/init-ZxktEp_H.js +16 -0
- package/app/out/renderer/assets/javascript-C3MnDRiU.js +994 -0
- package/app/out/renderer/assets/journeyDiagram-c64418c1-aloEGOQp.js +1184 -0
- package/app/out/renderer/assets/julia-Bs6JJhYG.js +407 -0
- package/app/out/renderer/assets/layout-ZeuHE_aY.js +2217 -0
- package/app/out/renderer/assets/line-CAgaGl-S.js +45 -0
- package/app/out/renderer/assets/linear-DIg7lTe1.js +539 -0
- package/app/out/renderer/assets/livescript-DmzgM3Yt.js +296 -0
- package/app/out/renderer/assets/lua-8cJgIlqe.js +256 -0
- package/app/out/renderer/assets/mathematica-DNLOL9PQ.js +110 -0
- package/app/out/renderer/assets/mbox-Ga7d4MMN.js +117 -0
- package/app/out/renderer/assets/mindmap-definition-8da855dc-B8XVoUxz.js +36054 -0
- package/app/out/renderer/assets/mirc-Dma3B8rS.js +107 -0
- package/app/out/renderer/assets/mllike-DHn7xckP.js +334 -0
- package/app/out/renderer/assets/modelica-0d55jYY0.js +147 -0
- package/app/out/renderer/assets/mscgen-DdqZYINH.js +135 -0
- package/app/out/renderer/assets/mumps-Btr8VblO.js +93 -0
- package/app/out/renderer/assets/nginx-DTDtBDVN.js +141 -0
- package/app/out/renderer/assets/nsis-3zG7tgur.js +62 -0
- package/app/out/renderer/assets/ntriples-CvgOYMpL.js +153 -0
- package/app/out/renderer/assets/octave-DYBj3-tl.js +200 -0
- package/app/out/renderer/assets/ordinal-DSZU4PqD.js +76 -0
- package/app/out/renderer/assets/oz-R_e8WMIi.js +231 -0
- package/app/out/renderer/assets/pascal-GD8iposT.js +105 -0
- package/app/out/renderer/assets/path-Cp2qmpkd.js +109 -0
- package/app/out/renderer/assets/perl-DL9mHpoi.js +1105 -0
- package/app/out/renderer/assets/pieDiagram-a8764435-DlwoeBU2.js +770 -0
- package/app/out/renderer/assets/pig-C_4T4YIV.js +101 -0
- package/app/out/renderer/assets/powershell-B0suO7Vd.js +328 -0
- package/app/out/renderer/assets/properties-BR-vP1aU.js +58 -0
- package/app/out/renderer/assets/protobuf-BxgpyhoW.js +77 -0
- package/app/out/renderer/assets/pug-By0kVCfm.js +405 -0
- package/app/out/renderer/assets/puppet-Bdao66PW.js +137 -0
- package/app/out/renderer/assets/python-CvWbmiX4.js +427 -0
- package/app/out/renderer/assets/q-CrbCVq4a.js +131 -0
- package/app/out/renderer/assets/quadrantDiagram-1e28029f-BaSi1XB4.js +1200 -0
- package/app/out/renderer/assets/r-V7nswm59.js +170 -0
- package/app/out/renderer/assets/requirementDiagram-08caed73-D3EFyegZ.js +1092 -0
- package/app/out/renderer/assets/rpm-C-DLY-If.js +109 -0
- package/app/out/renderer/assets/ruby-JDKLJNK0.js +330 -0
- package/app/out/renderer/assets/sankeyDiagram-a04cb91d-Cv44AsnM.js +1174 -0
- package/app/out/renderer/assets/sas-D2UG-yhZ.js +207 -0
- package/app/out/renderer/assets/scheme-BKzrkGJD.js +222 -0
- package/app/out/renderer/assets/sequenceDiagram-c5b8d532-CuUBu-x4.js +3337 -0
- package/app/out/renderer/assets/shell-BlsXDxCn.js +222 -0
- package/app/out/renderer/assets/sieve-CjwBwOY5.js +135 -0
- package/app/out/renderer/assets/simple-mode-DMneyfDu.js +130 -0
- package/app/out/renderer/assets/smalltalk-BOIGQuhN.js +121 -0
- package/app/out/renderer/assets/solr-CwD7U71z.js +69 -0
- package/app/out/renderer/assets/sparql-DYskk2vE.js +249 -0
- package/app/out/renderer/assets/spreadsheet-Bgtt3oLP.js +87 -0
- package/app/out/renderer/assets/sql-BSrOzCRI.js +354 -0
- package/app/out/renderer/assets/stateDiagram-1ecb1508-BOU34Zp4.js +454 -0
- package/app/out/renderer/assets/stateDiagram-v2-c2b004d7-BgRoffou.js +326 -0
- package/app/out/renderer/assets/stex-B6LNC55o.js +231 -0
- package/app/out/renderer/assets/styles-b4e223ce-BMr9TPuj.js +1483 -0
- package/app/out/renderer/assets/styles-ca3715f6-DgbNw99p.js +1363 -0
- package/app/out/renderer/assets/styles-d45a18b0-DtRYKYKf.js +574 -0
- package/app/out/renderer/assets/stylus-BkS-boTH.js +565 -0
- package/app/out/renderer/assets/svgDrawCommon-b86b1483-Bein03PD.js +100 -0
- package/app/out/renderer/assets/swift-FRZi1uvB.js +291 -0
- package/app/out/renderer/assets/tcl-CUcaCdmq.js +114 -0
- package/app/out/renderer/assets/textile-BnFpjsrl.js +414 -0
- package/app/out/renderer/assets/tiddlywiki-CjprD-Qp.js +218 -0
- package/app/out/renderer/assets/tiki-B4EPSQ1G.js +265 -0
- package/app/out/renderer/assets/timeline-definition-faaaa080-BlWpLE_4.js +1212 -0
- package/app/out/renderer/assets/toml-BOuWGMcf.js +76 -0
- package/app/out/renderer/assets/troff-E1bJ0PPL.js +61 -0
- package/app/out/renderer/assets/ttcn-cfg-Dc39-fIP.js +133 -0
- package/app/out/renderer/assets/ttcn-tKd4HLu4.js +192 -0
- package/app/out/renderer/assets/turtle-Dq7-1WAf.js +124 -0
- package/app/out/renderer/assets/vb-Dp90gtsv.js +196 -0
- package/app/out/renderer/assets/vbscript-CI6_mxxU.js +479 -0
- package/app/out/renderer/assets/velocity-BwIZK1TH.js +149 -0
- package/app/out/renderer/assets/verilog-DDCYnHN8.js +430 -0
- package/app/out/renderer/assets/vhdl-DCkMIyT9.js +158 -0
- package/app/out/renderer/assets/webidl-BTLTThCm.js +204 -0
- package/app/out/renderer/assets/xquery-BgiOC5Ce.js +525 -0
- package/app/out/renderer/assets/xychartDiagram-f5964ef8-Bhga-YXm.js +1799 -0
- package/app/out/renderer/assets/yacas-b5lAVEIl.js +130 -0
- package/app/out/renderer/assets/z80-BZV19vqv.js +93 -0
- package/app/out/renderer/index.html +13 -0
- package/app/out/skills/community-builtin/README.md +29 -0
- package/app/out/skills/community-builtin/document-docx/SKILL.md +44 -0
- package/app/out/skills/community-builtin/document-docx/scripts/docx-to-markdown.sh +20 -0
- package/app/out/skills/community-builtin/document-docx/scripts/extract-docx-text.sh +28 -0
- package/app/out/skills/community-builtin/document-docx/scripts/init-docx-template.sh +32 -0
- package/app/out/skills/community-builtin/document-docx/scripts/setup-docx-tools.sh +10 -0
- package/app/out/skills/community-builtin/markitdown/SKILL.md +105 -0
- package/app/out/skills/community-builtin/markitdown/scripts/batch-convert.sh +40 -0
- package/app/out/skills/community-builtin/markitdown/scripts/convert-file.sh +24 -0
- package/app/out/skills/community-builtin/markitdown/scripts/setup-markitdown.sh +10 -0
- package/app/out/skills/community-builtin/repo-quick-audit/SKILL.md +27 -0
- package/app/out/skills/community-builtin/repo-quick-audit/scripts/audit-basics.sh +19 -0
- package/app/out/skills/research-pilot-default-project-skills/README.md +23 -0
- package/app/out/skills/research-pilot-default-project-skills/citation-management/SKILL.md +39 -0
- package/app/out/skills/research-pilot-default-project-skills/citation-management/scripts/doi-to-bibtex.sh +25 -0
- package/app/out/skills/research-pilot-default-project-skills/citation-management/scripts/normalize-bibtex-keys.sh +51 -0
- package/app/out/skills/research-pilot-default-project-skills/citation-management/scripts/setup-citation-tools.sh +10 -0
- package/app/out/skills/research-pilot-default-project-skills/citation-management/scripts/validate-bib.sh +31 -0
- package/app/out/skills/research-pilot-default-project-skills/matplotlib/SKILL.md +34 -0
- package/app/out/skills/research-pilot-default-project-skills/matplotlib/references/api_reference.md +412 -0
- package/app/out/skills/research-pilot-default-project-skills/matplotlib/references/common_issues.md +563 -0
- package/app/out/skills/research-pilot-default-project-skills/matplotlib/references/plot_types.md +476 -0
- package/app/out/skills/research-pilot-default-project-skills/matplotlib/references/styling_guide.md +589 -0
- package/app/out/skills/research-pilot-default-project-skills/matplotlib/references/subagent_quickstart.md +30 -0
- package/app/out/skills/research-pilot-default-project-skills/matplotlib/scripts/plot_template.py +401 -0
- package/app/out/skills/research-pilot-default-project-skills/matplotlib/scripts/style_configurator.py +409 -0
- package/app/out/skills/research-pilot-default-project-skills/research-grants/SKILL.md +38 -0
- package/app/out/skills/research-pilot-default-project-skills/research-grants/scripts/check-grant-compliance.sh +40 -0
- package/app/out/skills/research-pilot-default-project-skills/research-grants/scripts/grant-summary-card.sh +32 -0
- package/app/out/skills/research-pilot-default-project-skills/research-grants/scripts/init-grant-structure.sh +70 -0
- package/app/package.json +77 -0
- package/bin/cli.mjs +56 -0
- package/lib/README.md +145 -0
- package/lib/skills/_generated.ts +13 -0
- package/lib/skills/builtin/brainstorming-research-ideas/SKILL.md +280 -0
- package/lib/skills/builtin/coding/SKILL.md +114 -0
- package/lib/skills/builtin/creative-thinking-for-research/SKILL.md +273 -0
- package/lib/skills/builtin/matplotlib/SKILL.md +361 -0
- package/lib/skills/builtin/matplotlib/references/api_reference.md +412 -0
- package/lib/skills/builtin/matplotlib/references/common_issues.md +563 -0
- package/lib/skills/builtin/matplotlib/references/plot_types.md +476 -0
- package/lib/skills/builtin/matplotlib/references/styling_guide.md +589 -0
- package/lib/skills/builtin/matplotlib/scripts/plot_template.py +401 -0
- package/lib/skills/builtin/matplotlib/scripts/style_configurator.py +409 -0
- package/lib/skills/builtin/paper-writing/SKILL.md +554 -0
- package/lib/skills/builtin/paper-writing/references/checklists.md +524 -0
- package/lib/skills/builtin/paper-writing/references/citation-workflow.md +562 -0
- package/lib/skills/builtin/paper-writing/references/reviewer-guidelines.md +462 -0
- package/lib/skills/builtin/paper-writing/references/sources.md +189 -0
- package/lib/skills/builtin/paper-writing/references/systems-conferences.md +260 -0
- package/lib/skills/builtin/paper-writing/references/writing-guide.md +476 -0
- package/lib/skills/builtin/paper-writing/templates/README.md +408 -0
- package/lib/skills/builtin/paper-writing/templates/aaai2026/README.md +534 -0
- package/lib/skills/builtin/paper-writing/templates/aaai2026/aaai2026-unified-supp.tex +144 -0
- package/lib/skills/builtin/paper-writing/templates/aaai2026/aaai2026-unified-template.tex +952 -0
- package/lib/skills/builtin/paper-writing/templates/aaai2026/aaai2026.bib +111 -0
- package/lib/skills/builtin/paper-writing/templates/aaai2026/aaai2026.bst +1493 -0
- package/lib/skills/builtin/paper-writing/templates/aaai2026/aaai2026.sty +315 -0
- package/lib/skills/builtin/paper-writing/templates/acl/README.md +50 -0
- package/lib/skills/builtin/paper-writing/templates/acl/acl.sty +312 -0
- package/lib/skills/builtin/paper-writing/templates/acl/acl_latex.tex +377 -0
- package/lib/skills/builtin/paper-writing/templates/acl/acl_lualatex.tex +101 -0
- package/lib/skills/builtin/paper-writing/templates/acl/acl_natbib.bst +1940 -0
- package/lib/skills/builtin/paper-writing/templates/acl/anthology.bib.txt +26 -0
- package/lib/skills/builtin/paper-writing/templates/acl/custom.bib +70 -0
- package/lib/skills/builtin/paper-writing/templates/acl/formatting.md +326 -0
- package/lib/skills/builtin/paper-writing/templates/asplos2027/main.tex +459 -0
- package/lib/skills/builtin/paper-writing/templates/asplos2027/references.bib +135 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/README.md +3 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/colm2025_conference.bib +11 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/colm2025_conference.bst +1440 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/colm2025_conference.pdf +0 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/colm2025_conference.sty +218 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/colm2025_conference.tex +305 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/fancyhdr.sty +485 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/math_commands.tex +508 -0
- package/lib/skills/builtin/paper-writing/templates/colm2025/natbib.sty +1246 -0
- package/lib/skills/builtin/paper-writing/templates/iclr2026/fancyhdr.sty +485 -0
- package/lib/skills/builtin/paper-writing/templates/iclr2026/iclr2026_conference.bib +24 -0
- package/lib/skills/builtin/paper-writing/templates/iclr2026/iclr2026_conference.bst +1440 -0
- package/lib/skills/builtin/paper-writing/templates/iclr2026/iclr2026_conference.pdf +0 -0
- package/lib/skills/builtin/paper-writing/templates/iclr2026/iclr2026_conference.sty +246 -0
- package/lib/skills/builtin/paper-writing/templates/iclr2026/iclr2026_conference.tex +414 -0
- package/lib/skills/builtin/paper-writing/templates/iclr2026/math_commands.tex +508 -0
- package/lib/skills/builtin/paper-writing/templates/iclr2026/natbib.sty +1246 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/algorithm.sty +79 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/algorithmic.sty +201 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/example_paper.bib +75 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/example_paper.pdf +0 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/example_paper.tex +662 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/fancyhdr.sty +864 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/icml2026.bst +1443 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/icml2026.sty +767 -0
- package/lib/skills/builtin/paper-writing/templates/icml2026/icml_numpapers.pdf +0 -0
- package/lib/skills/builtin/paper-writing/templates/neurips2025/Makefile +36 -0
- package/lib/skills/builtin/paper-writing/templates/neurips2025/extra_pkgs.tex +53 -0
- package/lib/skills/builtin/paper-writing/templates/neurips2025/main.tex +38 -0
- package/lib/skills/builtin/paper-writing/templates/neurips2025/neurips.sty +382 -0
- package/lib/skills/builtin/paper-writing/templates/nsdi2027/main.tex +426 -0
- package/lib/skills/builtin/paper-writing/templates/nsdi2027/references.bib +151 -0
- package/lib/skills/builtin/paper-writing/templates/nsdi2027/usenix-2020-09.sty +83 -0
- package/lib/skills/builtin/paper-writing/templates/osdi2026/main.tex +429 -0
- package/lib/skills/builtin/paper-writing/templates/osdi2026/references.bib +150 -0
- package/lib/skills/builtin/paper-writing/templates/osdi2026/usenix-2020-09.sty +83 -0
- package/lib/skills/builtin/paper-writing/templates/sosp2026/main.tex +532 -0
- package/lib/skills/builtin/paper-writing/templates/sosp2026/references.bib +148 -0
- package/lib/skills/builtin/research-grants/SKILL.md +958 -0
- package/lib/skills/builtin/research-grants/assets/budget_justification_template.md +453 -0
- package/lib/skills/builtin/research-grants/assets/nih_specific_aims_template.md +166 -0
- package/lib/skills/builtin/research-grants/assets/nsf_project_summary_template.md +92 -0
- package/lib/skills/builtin/research-grants/references/README.md +285 -0
- package/lib/skills/builtin/research-grants/references/broader_impacts.md +392 -0
- package/lib/skills/builtin/research-grants/references/darpa_guidelines.md +636 -0
- package/lib/skills/builtin/research-grants/references/doe_guidelines.md +586 -0
- package/lib/skills/builtin/research-grants/references/nih_guidelines.md +851 -0
- package/lib/skills/builtin/research-grants/references/nsf_guidelines.md +570 -0
- package/lib/skills/builtin/research-grants/references/nstc_guidelines.md +733 -0
- package/lib/skills/builtin/research-grants/references/specific_aims_guide.md +458 -0
- package/lib/skills/builtin/rewrite-humanize/SKILL.md +116 -0
- package/lib/skills/builtin/rewrite-humanize/references/cs-venue-tone.md +57 -0
- package/lib/skills/builtin/rewrite-humanize/references/lexicon.md +50 -0
- package/lib/skills/builtin/scholar-evaluation/SKILL.md +300 -0
- package/lib/skills/builtin/scholar-evaluation/references/evaluation_framework.md +663 -0
- package/lib/skills/builtin/scholar-evaluation/scripts/calculate_scores.py +379 -0
- package/lib/skills/builtin/scientific-schematics/SKILL.md +603 -0
- package/lib/skills/builtin/scientific-schematics/references/QUICK_REFERENCE.md +182 -0
- package/lib/skills/builtin/scientific-schematics/references/README.md +292 -0
- package/lib/skills/builtin/scientific-schematics/references/best_practices.md +560 -0
- package/lib/skills/builtin/scientific-schematics/scripts/__pycache__/generate_schematic.cpython-312.pyc +0 -0
- package/lib/skills/builtin/scientific-schematics/scripts/__pycache__/generate_schematic_ai.cpython-312.pyc +0 -0
- package/lib/skills/builtin/scientific-schematics/scripts/example_usage.sh +85 -0
- package/lib/skills/builtin/scientific-schematics/scripts/generate_schematic.py +141 -0
- package/lib/skills/builtin/scientific-schematics/scripts/generate_schematic_ai.py +910 -0
- package/lib/skills/builtin/scientific-visualization/SKILL.md +749 -0
- package/lib/skills/builtin/scientific-visualization/assets/color_palettes.py +197 -0
- package/lib/skills/builtin/scientific-visualization/assets/nature.mplstyle +63 -0
- package/lib/skills/builtin/scientific-visualization/assets/presentation.mplstyle +61 -0
- package/lib/skills/builtin/scientific-visualization/assets/publication.mplstyle +68 -0
- package/lib/skills/builtin/scientific-visualization/references/color_palettes.md +348 -0
- package/lib/skills/builtin/scientific-visualization/references/journal_requirements.md +320 -0
- package/lib/skills/builtin/scientific-visualization/references/matplotlib_examples.md +620 -0
- package/lib/skills/builtin/scientific-visualization/references/publication_guidelines.md +205 -0
- package/lib/skills/builtin/scientific-visualization/scripts/figure_export.py +343 -0
- package/lib/skills/builtin/scientific-visualization/scripts/style_presets.py +416 -0
- package/lib/skills/builtin/scientific-writing/SKILL.md +745 -0
- package/lib/skills/builtin/scientific-writing/assets/REPORT_FORMATTING_GUIDE.md +574 -0
- package/lib/skills/builtin/scientific-writing/assets/scientific_report.sty +606 -0
- package/lib/skills/builtin/scientific-writing/assets/scientific_report_template.tex +449 -0
- package/lib/skills/builtin/scientific-writing/references/citation_styles.md +720 -0
- package/lib/skills/builtin/scientific-writing/references/figures_tables.md +806 -0
- package/lib/skills/builtin/scientific-writing/references/imrad_structure.md +686 -0
- package/lib/skills/builtin/scientific-writing/references/professional_report_formatting.md +664 -0
- package/lib/skills/builtin/scientific-writing/references/reporting_guidelines.md +748 -0
- package/lib/skills/builtin/scientific-writing/references/writing_principles.md +824 -0
- package/lib/skills/builtin/seaborn/SKILL.md +674 -0
- package/lib/skills/builtin/seaborn/references/examples.md +822 -0
- package/lib/skills/builtin/seaborn/references/function_reference.md +770 -0
- package/lib/skills/builtin/seaborn/references/objects_interface.md +964 -0
- package/lib/skills/data-analysis/SKILL.md +285 -0
- package/lib/skills/generate-skill-content.mjs +58 -0
- package/lib/skills/index.ts +34 -0
- package/lib/skills/loader.ts +452 -0
- package/package.json +62 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: citation-management
|
|
3
|
+
description: Manage references, fetch BibTeX by DOI, validate bibliography quality, and keep citation keys consistent.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- skill-script-run
|
|
6
|
+
id: citation-management
|
|
7
|
+
shortDescription: Citation workflow for DOI->BibTeX, key normalization, and bibliography validation
|
|
8
|
+
loadingStrategy: lazy
|
|
9
|
+
tools:
|
|
10
|
+
- skill-script-run
|
|
11
|
+
tags:
|
|
12
|
+
- community
|
|
13
|
+
- citations
|
|
14
|
+
- bibtex
|
|
15
|
+
meta:
|
|
16
|
+
approvedByUser: true
|
|
17
|
+
upstream:
|
|
18
|
+
repo: https://github.com/K-Dense-AI/claude-scientific-writer
|
|
19
|
+
path: skills/citation-management
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Summary
|
|
23
|
+
Use this skill to keep references reproducible and clean. It standardizes DOI lookup, BibTeX storage, and quality checks before manuscript delivery.
|
|
24
|
+
|
|
25
|
+
## Procedures
|
|
26
|
+
1. Fetch missing BibTeX entries from DOI.
|
|
27
|
+
2. Normalize citation keys and deduplicate near-identical entries.
|
|
28
|
+
3. Validate the `.bib` file for missing required fields.
|
|
29
|
+
4. Run consistency checks before final writing/export.
|
|
30
|
+
|
|
31
|
+
## Scripts
|
|
32
|
+
- `setup-citation-tools`: Install optional helper dependencies.
|
|
33
|
+
- `doi-to-bibtex`: Resolve DOI to BibTeX and append/save.
|
|
34
|
+
- `validate-bib`: Quick structural quality checks for `.bib`.
|
|
35
|
+
- `normalize-bibtex-keys`: Rewrite keys to deterministic lowercase format.
|
|
36
|
+
|
|
37
|
+
## Notes
|
|
38
|
+
- Prefer DOI as canonical ID when available.
|
|
39
|
+
- Keep one canonical `.bib` file per project to avoid drift.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
if [ "$#" -lt 1 ]; then
|
|
5
|
+
echo "Usage: doi-to-bibtex.sh <doi> [output-bib]" >&2
|
|
6
|
+
exit 1
|
|
7
|
+
fi
|
|
8
|
+
|
|
9
|
+
DOI="$1"
|
|
10
|
+
OUT_FILE="${2:-}"
|
|
11
|
+
|
|
12
|
+
ENTRY="$(curl -fsSL -H 'Accept: application/x-bibtex; charset=utf-8' "https://doi.org/${DOI}")"
|
|
13
|
+
|
|
14
|
+
if [ -z "$ENTRY" ]; then
|
|
15
|
+
echo "No BibTeX returned for DOI: $DOI" >&2
|
|
16
|
+
exit 1
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
if [ -n "$OUT_FILE" ]; then
|
|
20
|
+
mkdir -p "$(dirname "$OUT_FILE")"
|
|
21
|
+
printf "%s\n\n" "$ENTRY" >> "$OUT_FILE"
|
|
22
|
+
echo "appended BibTeX to $OUT_FILE"
|
|
23
|
+
else
|
|
24
|
+
printf "%s\n" "$ENTRY"
|
|
25
|
+
fi
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
if [ "$#" -lt 1 ]; then
|
|
5
|
+
echo "Usage: normalize-bibtex-keys.sh <file.bib>" >&2
|
|
6
|
+
exit 1
|
|
7
|
+
fi
|
|
8
|
+
|
|
9
|
+
BIB_FILE="$1"
|
|
10
|
+
TMP_FILE="${BIB_FILE}.tmp"
|
|
11
|
+
|
|
12
|
+
if [ ! -f "$BIB_FILE" ]; then
|
|
13
|
+
echo "BibTeX file not found: $BIB_FILE" >&2
|
|
14
|
+
exit 1
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
python3 - "$BIB_FILE" "$TMP_FILE" <<'PY'
|
|
18
|
+
import re
|
|
19
|
+
import sys
|
|
20
|
+
|
|
21
|
+
src = sys.argv[1]
|
|
22
|
+
dst = sys.argv[2]
|
|
23
|
+
counter = 0
|
|
24
|
+
|
|
25
|
+
entry_re = re.compile(r'^@([A-Za-z]+)\{([^,]+),')
|
|
26
|
+
|
|
27
|
+
with open(src, "r", encoding="utf-8") as f:
|
|
28
|
+
lines = f.readlines()
|
|
29
|
+
|
|
30
|
+
normalized = []
|
|
31
|
+
for line in lines:
|
|
32
|
+
m = entry_re.match(line)
|
|
33
|
+
if not m:
|
|
34
|
+
normalized.append(line)
|
|
35
|
+
continue
|
|
36
|
+
|
|
37
|
+
entry_type, raw_key = m.group(1), m.group(2)
|
|
38
|
+
key = raw_key.lower()
|
|
39
|
+
key = re.sub(r'[^a-z0-9:_-]+', '-', key).strip('-')
|
|
40
|
+
if not key:
|
|
41
|
+
counter += 1
|
|
42
|
+
key = f"entry-{counter:04d}"
|
|
43
|
+
|
|
44
|
+
normalized.append(entry_re.sub(f"@{entry_type}" + "{" + key + ",", line, count=1))
|
|
45
|
+
|
|
46
|
+
with open(dst, "w", encoding="utf-8") as f:
|
|
47
|
+
f.writelines(normalized)
|
|
48
|
+
PY
|
|
49
|
+
|
|
50
|
+
mv "$TMP_FILE" "$BIB_FILE"
|
|
51
|
+
echo "normalized keys in $BIB_FILE"
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
if [ "$#" -lt 1 ]; then
|
|
5
|
+
echo "Usage: validate-bib.sh <file.bib>" >&2
|
|
6
|
+
exit 1
|
|
7
|
+
fi
|
|
8
|
+
|
|
9
|
+
BIB_FILE="$1"
|
|
10
|
+
|
|
11
|
+
if [ ! -f "$BIB_FILE" ]; then
|
|
12
|
+
echo "BibTeX file not found: $BIB_FILE" >&2
|
|
13
|
+
exit 1
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
ENTRY_COUNT="$(grep -cE '^@[A-Za-z]+' "$BIB_FILE" || true)"
|
|
17
|
+
YEAR_FIELDS="$(grep -cE '^\s*year\s*=' "$BIB_FILE" || true)"
|
|
18
|
+
TITLE_FIELDS="$(grep -cE '^\s*title\s*=' "$BIB_FILE" || true)"
|
|
19
|
+
AUTHOR_FIELDS="$(grep -cE '^\s*author\s*=' "$BIB_FILE" || true)"
|
|
20
|
+
|
|
21
|
+
echo "entries: $ENTRY_COUNT"
|
|
22
|
+
echo "title fields: $TITLE_FIELDS"
|
|
23
|
+
echo "author fields: $AUTHOR_FIELDS"
|
|
24
|
+
echo "year fields: $YEAR_FIELDS"
|
|
25
|
+
|
|
26
|
+
if [ "$ENTRY_COUNT" -eq 0 ]; then
|
|
27
|
+
echo "warning: no BibTeX entries found" >&2
|
|
28
|
+
exit 2
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
echo "basic validation complete"
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: matplotlib
|
|
3
|
+
description: Reusable plotting templates and style presets for scientific figures.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- skill-script-run
|
|
6
|
+
id: matplotlib
|
|
7
|
+
shortDescription: Plot template + style presets for consistent matplotlib figures
|
|
8
|
+
loadingStrategy: on-demand
|
|
9
|
+
tools:
|
|
10
|
+
- skill-script-run
|
|
11
|
+
tags:
|
|
12
|
+
- data
|
|
13
|
+
- visualization
|
|
14
|
+
- matplotlib
|
|
15
|
+
- plotting
|
|
16
|
+
meta:
|
|
17
|
+
approvedByUser: true
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Summary
|
|
21
|
+
Use this skill when you need fast, consistent matplotlib scaffolding (plot examples and style presets) before or alongside `data-analyze`.
|
|
22
|
+
|
|
23
|
+
## Procedures
|
|
24
|
+
1. For quick plot structure examples, run `plot_template`.
|
|
25
|
+
2. For style presets (`publication`, `presentation`, `web`, `dark`, `minimal`), run `style_configurator`.
|
|
26
|
+
3. Use generated examples/styles as references, then produce dataset-specific outputs with `data-analyze`.
|
|
27
|
+
|
|
28
|
+
## Scripts
|
|
29
|
+
- `plot_template`: Demonstrates common plot types and layout patterns.
|
|
30
|
+
- `style_configurator`: Generates and previews matplotlib style presets.
|
|
31
|
+
|
|
32
|
+
## Notes
|
|
33
|
+
- Keep project outputs in `.research-pilot/outputs/*`.
|
|
34
|
+
- Prefer `data-analyze` for final dataset-driven figures; use this skill to accelerate setup and styling decisions.
|
package/app/out/skills/research-pilot-default-project-skills/matplotlib/references/api_reference.md
ADDED
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
# Matplotlib API Reference
|
|
2
|
+
|
|
3
|
+
This document provides a quick reference for the most commonly used matplotlib classes and methods.
|
|
4
|
+
|
|
5
|
+
## Core Classes
|
|
6
|
+
|
|
7
|
+
### Figure
|
|
8
|
+
|
|
9
|
+
The top-level container for all plot elements.
|
|
10
|
+
|
|
11
|
+
**Creation:**
|
|
12
|
+
```python
|
|
13
|
+
fig = plt.figure(figsize=(10, 6), dpi=100, facecolor='white')
|
|
14
|
+
fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(10, 6))
|
|
15
|
+
fig, axes = plt.subplots(2, 2, figsize=(12, 10))
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
**Key Methods:**
|
|
19
|
+
- `fig.add_subplot(nrows, ncols, index)` - Add a subplot
|
|
20
|
+
- `fig.add_axes([left, bottom, width, height])` - Add axes at specific position
|
|
21
|
+
- `fig.savefig(filename, dpi=300, bbox_inches='tight')` - Save figure
|
|
22
|
+
- `fig.tight_layout()` - Adjust spacing to prevent overlaps
|
|
23
|
+
- `fig.suptitle(title)` - Set figure title
|
|
24
|
+
- `fig.legend()` - Create figure-level legend
|
|
25
|
+
- `fig.colorbar(mappable)` - Add colorbar to figure
|
|
26
|
+
- `plt.close(fig)` - Close figure to free memory
|
|
27
|
+
|
|
28
|
+
**Key Attributes:**
|
|
29
|
+
- `fig.axes` - List of all axes in the figure
|
|
30
|
+
- `fig.dpi` - Resolution in dots per inch
|
|
31
|
+
- `fig.figsize` - Figure dimensions in inches (width, height)
|
|
32
|
+
|
|
33
|
+
### Axes
|
|
34
|
+
|
|
35
|
+
The actual plotting area where data is visualized.
|
|
36
|
+
|
|
37
|
+
**Creation:**
|
|
38
|
+
```python
|
|
39
|
+
fig, ax = plt.subplots() # Single axes
|
|
40
|
+
ax = fig.add_subplot(111) # Alternative method
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Plotting Methods:**
|
|
44
|
+
|
|
45
|
+
**Line plots:**
|
|
46
|
+
- `ax.plot(x, y, **kwargs)` - Line plot
|
|
47
|
+
- `ax.step(x, y, where='pre'/'mid'/'post')` - Step plot
|
|
48
|
+
- `ax.errorbar(x, y, yerr, xerr)` - Error bars
|
|
49
|
+
|
|
50
|
+
**Scatter plots:**
|
|
51
|
+
- `ax.scatter(x, y, s=size, c=color, marker='o', alpha=0.5)` - Scatter plot
|
|
52
|
+
|
|
53
|
+
**Bar charts:**
|
|
54
|
+
- `ax.bar(x, height, width=0.8, align='center')` - Vertical bar chart
|
|
55
|
+
- `ax.barh(y, width)` - Horizontal bar chart
|
|
56
|
+
|
|
57
|
+
**Statistical plots:**
|
|
58
|
+
- `ax.hist(data, bins=10, density=False)` - Histogram
|
|
59
|
+
- `ax.boxplot(data, labels=None)` - Box plot
|
|
60
|
+
- `ax.violinplot(data)` - Violin plot
|
|
61
|
+
|
|
62
|
+
**2D plots:**
|
|
63
|
+
- `ax.imshow(array, cmap='viridis', aspect='auto')` - Display image/matrix
|
|
64
|
+
- `ax.contour(X, Y, Z, levels=10)` - Contour lines
|
|
65
|
+
- `ax.contourf(X, Y, Z, levels=10)` - Filled contours
|
|
66
|
+
- `ax.pcolormesh(X, Y, Z)` - Pseudocolor plot
|
|
67
|
+
|
|
68
|
+
**Filling:**
|
|
69
|
+
- `ax.fill_between(x, y1, y2, alpha=0.3)` - Fill between curves
|
|
70
|
+
- `ax.fill_betweenx(y, x1, x2)` - Fill between vertical curves
|
|
71
|
+
|
|
72
|
+
**Text and annotations:**
|
|
73
|
+
- `ax.text(x, y, text, fontsize=12)` - Add text
|
|
74
|
+
- `ax.annotate(text, xy=(x, y), xytext=(x2, y2), arrowprops={})` - Annotate with arrow
|
|
75
|
+
|
|
76
|
+
**Customization Methods:**
|
|
77
|
+
|
|
78
|
+
**Labels and titles:**
|
|
79
|
+
- `ax.set_xlabel(label, fontsize=12)` - Set x-axis label
|
|
80
|
+
- `ax.set_ylabel(label, fontsize=12)` - Set y-axis label
|
|
81
|
+
- `ax.set_title(title, fontsize=14)` - Set axes title
|
|
82
|
+
|
|
83
|
+
**Limits and scales:**
|
|
84
|
+
- `ax.set_xlim(left, right)` - Set x-axis limits
|
|
85
|
+
- `ax.set_ylim(bottom, top)` - Set y-axis limits
|
|
86
|
+
- `ax.set_xscale('linear'/'log'/'symlog')` - Set x-axis scale
|
|
87
|
+
- `ax.set_yscale('linear'/'log'/'symlog')` - Set y-axis scale
|
|
88
|
+
|
|
89
|
+
**Ticks:**
|
|
90
|
+
- `ax.set_xticks(positions)` - Set x-tick positions
|
|
91
|
+
- `ax.set_xticklabels(labels)` - Set x-tick labels
|
|
92
|
+
- `ax.tick_params(axis='both', labelsize=10)` - Customize tick appearance
|
|
93
|
+
|
|
94
|
+
**Grid and spines:**
|
|
95
|
+
- `ax.grid(True, alpha=0.3, linestyle='--')` - Add grid
|
|
96
|
+
- `ax.spines['top'].set_visible(False)` - Hide top spine
|
|
97
|
+
- `ax.spines['right'].set_visible(False)` - Hide right spine
|
|
98
|
+
|
|
99
|
+
**Legend:**
|
|
100
|
+
- `ax.legend(loc='best', fontsize=10, frameon=True)` - Add legend
|
|
101
|
+
- `ax.legend(handles, labels)` - Custom legend
|
|
102
|
+
|
|
103
|
+
**Aspect and layout:**
|
|
104
|
+
- `ax.set_aspect('equal'/'auto'/ratio)` - Set aspect ratio
|
|
105
|
+
- `ax.invert_xaxis()` - Invert x-axis
|
|
106
|
+
- `ax.invert_yaxis()` - Invert y-axis
|
|
107
|
+
|
|
108
|
+
### pyplot Module
|
|
109
|
+
|
|
110
|
+
High-level interface for quick plotting.
|
|
111
|
+
|
|
112
|
+
**Figure creation:**
|
|
113
|
+
- `plt.figure()` - Create new figure
|
|
114
|
+
- `plt.subplots()` - Create figure and axes
|
|
115
|
+
- `plt.subplot()` - Add subplot to current figure
|
|
116
|
+
|
|
117
|
+
**Plotting (uses current axes):**
|
|
118
|
+
- `plt.plot()` - Line plot
|
|
119
|
+
- `plt.scatter()` - Scatter plot
|
|
120
|
+
- `plt.bar()` - Bar chart
|
|
121
|
+
- `plt.hist()` - Histogram
|
|
122
|
+
- (All axes methods available)
|
|
123
|
+
|
|
124
|
+
**Display and save:**
|
|
125
|
+
- `plt.show()` - Display figure
|
|
126
|
+
- `plt.savefig()` - Save figure
|
|
127
|
+
- `plt.close()` - Close figure
|
|
128
|
+
|
|
129
|
+
**Style:**
|
|
130
|
+
- `plt.style.use(style_name)` - Apply style sheet
|
|
131
|
+
- `plt.style.available` - List available styles
|
|
132
|
+
|
|
133
|
+
**State management:**
|
|
134
|
+
- `plt.gca()` - Get current axes
|
|
135
|
+
- `plt.gcf()` - Get current figure
|
|
136
|
+
- `plt.sca(ax)` - Set current axes
|
|
137
|
+
- `plt.clf()` - Clear current figure
|
|
138
|
+
- `plt.cla()` - Clear current axes
|
|
139
|
+
|
|
140
|
+
## Line and Marker Styles
|
|
141
|
+
|
|
142
|
+
### Line Styles
|
|
143
|
+
- `'-'` or `'solid'` - Solid line
|
|
144
|
+
- `'--'` or `'dashed'` - Dashed line
|
|
145
|
+
- `'-.'` or `'dashdot'` - Dash-dot line
|
|
146
|
+
- `':'` or `'dotted'` - Dotted line
|
|
147
|
+
- `''` or `' '` or `'None'` - No line
|
|
148
|
+
|
|
149
|
+
### Marker Styles
|
|
150
|
+
- `'.'` - Point marker
|
|
151
|
+
- `'o'` - Circle marker
|
|
152
|
+
- `'v'`, `'^'`, `'<'`, `'>'` - Triangle markers
|
|
153
|
+
- `'s'` - Square marker
|
|
154
|
+
- `'p'` - Pentagon marker
|
|
155
|
+
- `'*'` - Star marker
|
|
156
|
+
- `'h'`, `'H'` - Hexagon markers
|
|
157
|
+
- `'+'` - Plus marker
|
|
158
|
+
- `'x'` - X marker
|
|
159
|
+
- `'D'`, `'d'` - Diamond markers
|
|
160
|
+
|
|
161
|
+
### Color Specifications
|
|
162
|
+
|
|
163
|
+
**Single character shortcuts:**
|
|
164
|
+
- `'b'` - Blue
|
|
165
|
+
- `'g'` - Green
|
|
166
|
+
- `'r'` - Red
|
|
167
|
+
- `'c'` - Cyan
|
|
168
|
+
- `'m'` - Magenta
|
|
169
|
+
- `'y'` - Yellow
|
|
170
|
+
- `'k'` - Black
|
|
171
|
+
- `'w'` - White
|
|
172
|
+
|
|
173
|
+
**Named colors:**
|
|
174
|
+
- `'steelblue'`, `'coral'`, `'teal'`, etc.
|
|
175
|
+
- See full list: https://matplotlib.org/stable/gallery/color/named_colors.html
|
|
176
|
+
|
|
177
|
+
**Other formats:**
|
|
178
|
+
- Hex: `'#FF5733'`
|
|
179
|
+
- RGB tuple: `(0.1, 0.2, 0.3)`
|
|
180
|
+
- RGBA tuple: `(0.1, 0.2, 0.3, 0.5)`
|
|
181
|
+
|
|
182
|
+
## Common Parameters
|
|
183
|
+
|
|
184
|
+
### Plot Function Parameters
|
|
185
|
+
|
|
186
|
+
```python
|
|
187
|
+
ax.plot(x, y,
|
|
188
|
+
color='blue', # Line color
|
|
189
|
+
linewidth=2, # Line width
|
|
190
|
+
linestyle='--', # Line style
|
|
191
|
+
marker='o', # Marker style
|
|
192
|
+
markersize=8, # Marker size
|
|
193
|
+
markerfacecolor='red', # Marker fill color
|
|
194
|
+
markeredgecolor='black',# Marker edge color
|
|
195
|
+
markeredgewidth=1, # Marker edge width
|
|
196
|
+
alpha=0.7, # Transparency (0-1)
|
|
197
|
+
label='data', # Legend label
|
|
198
|
+
zorder=2, # Drawing order
|
|
199
|
+
rasterized=True # Rasterize for smaller file size
|
|
200
|
+
)
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Scatter Function Parameters
|
|
204
|
+
|
|
205
|
+
```python
|
|
206
|
+
ax.scatter(x, y,
|
|
207
|
+
s=50, # Size (scalar or array)
|
|
208
|
+
c='blue', # Color (scalar, array, or sequence)
|
|
209
|
+
marker='o', # Marker style
|
|
210
|
+
cmap='viridis', # Colormap (if c is numeric)
|
|
211
|
+
alpha=0.5, # Transparency
|
|
212
|
+
edgecolors='black', # Edge color
|
|
213
|
+
linewidths=1, # Edge width
|
|
214
|
+
vmin=0, vmax=1, # Color scale limits
|
|
215
|
+
label='data' # Legend label
|
|
216
|
+
)
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Text Parameters
|
|
220
|
+
|
|
221
|
+
```python
|
|
222
|
+
ax.text(x, y, text,
|
|
223
|
+
fontsize=12, # Font size
|
|
224
|
+
fontweight='normal', # 'normal', 'bold', 'heavy', 'light'
|
|
225
|
+
fontstyle='normal', # 'normal', 'italic', 'oblique'
|
|
226
|
+
fontfamily='sans-serif',# Font family
|
|
227
|
+
color='black', # Text color
|
|
228
|
+
alpha=1.0, # Transparency
|
|
229
|
+
ha='center', # Horizontal alignment: 'left', 'center', 'right'
|
|
230
|
+
va='center', # Vertical alignment: 'top', 'center', 'bottom', 'baseline'
|
|
231
|
+
rotation=0, # Rotation angle in degrees
|
|
232
|
+
bbox=dict( # Background box
|
|
233
|
+
facecolor='white',
|
|
234
|
+
edgecolor='black',
|
|
235
|
+
boxstyle='round'
|
|
236
|
+
)
|
|
237
|
+
)
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
## rcParams Configuration
|
|
241
|
+
|
|
242
|
+
Common rcParams settings for global customization:
|
|
243
|
+
|
|
244
|
+
```python
|
|
245
|
+
# Font settings
|
|
246
|
+
plt.rcParams['font.family'] = 'sans-serif'
|
|
247
|
+
plt.rcParams['font.sans-serif'] = ['Arial', 'Helvetica']
|
|
248
|
+
plt.rcParams['font.size'] = 12
|
|
249
|
+
|
|
250
|
+
# Figure settings
|
|
251
|
+
plt.rcParams['figure.figsize'] = (10, 6)
|
|
252
|
+
plt.rcParams['figure.dpi'] = 100
|
|
253
|
+
plt.rcParams['figure.facecolor'] = 'white'
|
|
254
|
+
plt.rcParams['savefig.dpi'] = 300
|
|
255
|
+
plt.rcParams['savefig.bbox'] = 'tight'
|
|
256
|
+
|
|
257
|
+
# Axes settings
|
|
258
|
+
plt.rcParams['axes.labelsize'] = 14
|
|
259
|
+
plt.rcParams['axes.titlesize'] = 16
|
|
260
|
+
plt.rcParams['axes.grid'] = True
|
|
261
|
+
plt.rcParams['axes.grid.alpha'] = 0.3
|
|
262
|
+
|
|
263
|
+
# Line settings
|
|
264
|
+
plt.rcParams['lines.linewidth'] = 2
|
|
265
|
+
plt.rcParams['lines.markersize'] = 8
|
|
266
|
+
|
|
267
|
+
# Tick settings
|
|
268
|
+
plt.rcParams['xtick.labelsize'] = 10
|
|
269
|
+
plt.rcParams['ytick.labelsize'] = 10
|
|
270
|
+
plt.rcParams['xtick.direction'] = 'in' # 'in', 'out', 'inout'
|
|
271
|
+
plt.rcParams['ytick.direction'] = 'in'
|
|
272
|
+
|
|
273
|
+
# Legend settings
|
|
274
|
+
plt.rcParams['legend.fontsize'] = 12
|
|
275
|
+
plt.rcParams['legend.frameon'] = True
|
|
276
|
+
plt.rcParams['legend.framealpha'] = 0.8
|
|
277
|
+
|
|
278
|
+
# Grid settings
|
|
279
|
+
plt.rcParams['grid.alpha'] = 0.3
|
|
280
|
+
plt.rcParams['grid.linestyle'] = '--'
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
## GridSpec for Complex Layouts
|
|
284
|
+
|
|
285
|
+
```python
|
|
286
|
+
from matplotlib.gridspec import GridSpec
|
|
287
|
+
|
|
288
|
+
fig = plt.figure(figsize=(12, 8))
|
|
289
|
+
gs = GridSpec(3, 3, figure=fig, hspace=0.3, wspace=0.3)
|
|
290
|
+
|
|
291
|
+
# Span multiple cells
|
|
292
|
+
ax1 = fig.add_subplot(gs[0, :]) # Top row, all columns
|
|
293
|
+
ax2 = fig.add_subplot(gs[1:, 0]) # Bottom two rows, first column
|
|
294
|
+
ax3 = fig.add_subplot(gs[1, 1:]) # Middle row, last two columns
|
|
295
|
+
ax4 = fig.add_subplot(gs[2, 1]) # Bottom row, middle column
|
|
296
|
+
ax5 = fig.add_subplot(gs[2, 2]) # Bottom row, right column
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
## 3D Plotting
|
|
300
|
+
|
|
301
|
+
```python
|
|
302
|
+
from mpl_toolkits.mplot3d import Axes3D
|
|
303
|
+
|
|
304
|
+
fig = plt.figure()
|
|
305
|
+
ax = fig.add_subplot(111, projection='3d')
|
|
306
|
+
|
|
307
|
+
# Plot types
|
|
308
|
+
ax.plot(x, y, z) # 3D line
|
|
309
|
+
ax.scatter(x, y, z) # 3D scatter
|
|
310
|
+
ax.plot_surface(X, Y, Z) # 3D surface
|
|
311
|
+
ax.plot_wireframe(X, Y, Z) # 3D wireframe
|
|
312
|
+
ax.contour(X, Y, Z) # 3D contour
|
|
313
|
+
ax.bar3d(x, y, z, dx, dy, dz) # 3D bar
|
|
314
|
+
|
|
315
|
+
# Customization
|
|
316
|
+
ax.set_xlabel('X')
|
|
317
|
+
ax.set_ylabel('Y')
|
|
318
|
+
ax.set_zlabel('Z')
|
|
319
|
+
ax.view_init(elev=30, azim=45) # Set viewing angle
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
## Animation
|
|
323
|
+
|
|
324
|
+
```python
|
|
325
|
+
from matplotlib.animation import FuncAnimation
|
|
326
|
+
|
|
327
|
+
fig, ax = plt.subplots()
|
|
328
|
+
line, = ax.plot([], [])
|
|
329
|
+
|
|
330
|
+
def init():
|
|
331
|
+
ax.set_xlim(0, 2*np.pi)
|
|
332
|
+
ax.set_ylim(-1, 1)
|
|
333
|
+
return line,
|
|
334
|
+
|
|
335
|
+
def update(frame):
|
|
336
|
+
x = np.linspace(0, 2*np.pi, 100)
|
|
337
|
+
y = np.sin(x + frame/10)
|
|
338
|
+
line.set_data(x, y)
|
|
339
|
+
return line,
|
|
340
|
+
|
|
341
|
+
anim = FuncAnimation(fig, update, init_func=init,
|
|
342
|
+
frames=100, interval=50, blit=True)
|
|
343
|
+
|
|
344
|
+
# Save animation
|
|
345
|
+
anim.save('animation.gif', writer='pillow', fps=20)
|
|
346
|
+
anim.save('animation.mp4', writer='ffmpeg', fps=20)
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
## Image Operations
|
|
350
|
+
|
|
351
|
+
```python
|
|
352
|
+
# Read and display image
|
|
353
|
+
img = plt.imread('image.png')
|
|
354
|
+
ax.imshow(img)
|
|
355
|
+
|
|
356
|
+
# Display matrix as image
|
|
357
|
+
ax.imshow(matrix, cmap='viridis', aspect='auto',
|
|
358
|
+
interpolation='nearest', origin='lower')
|
|
359
|
+
|
|
360
|
+
# Colorbar
|
|
361
|
+
cbar = plt.colorbar(im, ax=ax)
|
|
362
|
+
cbar.set_label('Values')
|
|
363
|
+
|
|
364
|
+
# Image extent (set coordinates)
|
|
365
|
+
ax.imshow(img, extent=[x_min, x_max, y_min, y_max])
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
## Event Handling
|
|
369
|
+
|
|
370
|
+
```python
|
|
371
|
+
# Mouse click event
|
|
372
|
+
def on_click(event):
|
|
373
|
+
if event.inaxes:
|
|
374
|
+
print(f'Clicked at x={event.xdata:.2f}, y={event.ydata:.2f}')
|
|
375
|
+
|
|
376
|
+
fig.canvas.mpl_connect('button_press_event', on_click)
|
|
377
|
+
|
|
378
|
+
# Key press event
|
|
379
|
+
def on_key(event):
|
|
380
|
+
print(f'Key pressed: {event.key}')
|
|
381
|
+
|
|
382
|
+
fig.canvas.mpl_connect('key_press_event', on_key)
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
## Useful Utilities
|
|
386
|
+
|
|
387
|
+
```python
|
|
388
|
+
# Get current axis limits
|
|
389
|
+
xlims = ax.get_xlim()
|
|
390
|
+
ylims = ax.get_ylim()
|
|
391
|
+
|
|
392
|
+
# Set equal aspect ratio
|
|
393
|
+
ax.set_aspect('equal', adjustable='box')
|
|
394
|
+
|
|
395
|
+
# Share axes between subplots
|
|
396
|
+
fig, (ax1, ax2) = plt.subplots(2, 1, sharex=True)
|
|
397
|
+
|
|
398
|
+
# Twin axes (two y-axes)
|
|
399
|
+
ax2 = ax1.twinx()
|
|
400
|
+
|
|
401
|
+
# Remove tick labels
|
|
402
|
+
ax.set_xticklabels([])
|
|
403
|
+
ax.set_yticklabels([])
|
|
404
|
+
|
|
405
|
+
# Scientific notation
|
|
406
|
+
ax.ticklabel_format(style='scientific', axis='y', scilimits=(0,0))
|
|
407
|
+
|
|
408
|
+
# Date formatting
|
|
409
|
+
import matplotlib.dates as mdates
|
|
410
|
+
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
|
|
411
|
+
ax.xaxis.set_major_locator(mdates.DayLocator(interval=7))
|
|
412
|
+
```
|