Python Data Analysis and Visualization in Java GUI Applications Through TCP Socket Programming

PDF (1634KB), PP.72-92

Views: 0 Downloads: 0

Author(s)

Bala Dhandayuthapani V. 1,*

1. Department of IT, College of Computing and Information Sciences, University of Technology and Applied Sciences, Shinas campus, Oman

* Corresponding author.

DOI: https://doi.org/10.5815/ijitcs.2024.03.07

Received: 1 Feb. 2024 / Revised: 17 Mar. 2024 / Accepted: 20 Apr. 2024 / Published: 8 Jun. 2024

Index Terms

Interoperability, Java, Matplotlib, Python, Seaborn, Socket Programming, Visualization

Abstract

Python is popular in artificial intelligence (AI) and machine learning (ML) due to its versatility, adaptability, rich libraries, and active community. The existing Python interoperability in Java was investigated using socket programming on a non-graphical user interface (GUI). Python's data analysis library modules such as numpy, pandas, and scipy, together with visualization library modules such as Matplotlib and Seaborn, and Scikit-learn for machine-learning, aim to integrate into Java graphical user interface (GUI) applications such as Java applets, Java Swing, and Java FX. The substantial method used in the integration process is TCP socket programming, which makes instruction and data transfers to provide interoperability between Python and Java GUIs. This empirical research integrates Python data analysis and visualization graphs into Java applications and does not require any additional libraries or third-party libraries. The experimentation confirmed the advantages and challenges of this integration with a concrete solution. The intended audience for this research extends to software developers, data analysts, and scientists, recognizing Python's broad applicability to artificial intelligence (AI) and machine learning (ML). The integration of data analysis and visualization and machine-learning functionalities within the Java GUI. It emphasizes the self-sufficiency of the integration process and suggests future research directions, including comparative analysis with Java's native capabilities, interactive data visualization using libraries like Altair, Bokeh, Plotly, and Pygal, performance and security considerations, and no-code and low-code implementations.

Cite This Paper

Bala Dhandayuthapani V., "Python Data Analysis and Visualization in Java GUI Applications Through TCP Socket Programming", International Journal of Information Technology and Computer Science(IJITCS), Vol.16, No.3, pp.72-92, 2024. DOI:10.5815/ijitcs.2024.03.07

Reference

[1]Daivi, “10 Python Data Visualization Libraries to Win Over Your Insights,” 2023. https://www.projectpro.io/article/python-data-visualization-libraries/543 (accessed Sep. 30, 2023).
[2]B. Melissa, “12 Python Data Visualization Libraries to Explore for Business Analysis,” 2022. https://mode.com/blog/python-data-visualization-libraries/ (accessed Oct. 03, 2023).
[3]“Using Matplotlib.” https://matplotlib.org/stable/users/index
[4]“User guide and tutorial.” https://seaborn.pydata.org/tutorial.html
[5]“A Grammar of Graphics for Python.” https://plotnine.readthedocs.io/en/v0.12.3/
[6]plotly, “Plotly Fundamentals,” Github, 2020. https://plotly.com/python/plotly-fundamentals/
[7]Labdhisheth, “Visualizing Geographical Data using geoplotlib,” 2021. https://medium.com/@labdheesheth/visualizing-geographical-data-using-geoplotlib-d732953abcd5
[8]“Bokeh documentation.” https://docs.bokeh.org/en/latest/
[9]“Folium help.” https://pypi.org/help/
[10]“Vega-Altair.” https://altair-viz.github.io/user_guide/data.html
[11]“Pygal documentation.” https://www.pygal.org/en/stable/documentation/index.html
[12]“Using JavaFX Charts.” https://docs.oracle.com/javafx/2/charts/jfxpub-charts.htm
[13]“JFreeChart 1.5.3 API.” https://www.jfree.org/jfreechart/javadoc/index.html
[14]F. R. Gilbert and D. B. Dahl, “jsr223: A Java platform integration for R with programming languages Groovy, JavaScript, JRuby, Jython, and Kotlin,” R J., vol. 10, no. 2, pp. 440–454, 2019, doi: 10.32614/RJ-2018-066.
[15]E. Hehman and S. Y. Xie, “Doing Better Data Visualization,” Adv. Methods Pract. Psychol. Sci., vol. 4, no. 4, 2021, doi: 10.1177/25152459211045334.
[16]C. El Hachimi, S. Belaqziz, S. Khabba, and A. Chehbouni, “Data Science Toolkit: An all-in-one python library to help researchers and practitioners in implementing data science-related algorithms with less effort[Formula presented],” Softw. Impacts, vol. 12, no. January, p. 100240, 2022, doi: 10.1016/j.simpa.2022.100240.
[17]A. Berti, S. van Zelst, and D. Schuster, “PM4Py: A process mining library for Python[Formula presented],” Softw. Impacts, vol. 17, no. July, p. 100556, 2023, doi: 10.1016/j.simpa.2023.100556.
[18]A. Kumar Rathore and R. Rajnish, “Comprehensive review of data visualization techniques using python,” Amity J. Comput. Sci., vol. 3, no. 2, pp. 42–48, 2017.
[19]I. Stancin and A. Jovic, “An overview and comparison of free Python libraries for data mining and big data analysis,” 2019 42nd Int. Conv. Inf. Commun. Technol. Electron. Microelectron. MIPRO 2019 - Proc., pp. 977–982, 2019, doi: 10.23919/MIPRO.2019.8757088.
[20]S. Shah, R. Fernandez, and S. Drucker, “A system for real-time interactive analysis of deep learning training,” Proc. ACM SIGCHI Symp. Eng. Interact. Comput. Syst. EICS 2019, no. 2, 2019, doi: 10.1145/3319499.3328231.
[21]K. Munawar and M. S. Naveed, “The Impact of Language Syntax on the Complexity of Programs: A Case Study of Java and Python,” Int. J. Innov. Sci. Technol., vol. 4, no. 3, pp. 683–695, 2022, doi: 10.33411/ijist/2022040310.
[22]B. Roziere, M. A. Lachaux, L. Chanussot, and G. Lample, “Unsupervised translation of programming languages,” Adv. Neural Inf. Process. Syst., vol. 2020-Decem, no. NeurIPS, 2020.
[23]A. Oberoi and R. Chauhan, “Visualizing data using Matplotlib and Seaborn libraries in Python for data science,” Int. J. Sci. Res. Publ., vol. 9, no. 3, p. p8733, 2019, doi: 10.29322/ijsrp.9.03.2019.p8733.
[24]K. Nongthombam, “Data Analysis Using Python,” Int. J. Eng. Res. Technol., vol. 10, no. 07, pp. 463–468, 2021.
[25]S. Cao, Y. Zeng, S. Yang, and S. Cao, “Research on Python Data Visualization Technology,” J. Phys. Conf. Ser., vol. 1757, no. 1, 2021, doi: 10.1088/1742-6596/1757/1/012122.
[26]F. Li, “Research on Data Visualization Technology Based on Python,” Int. J. Multidiscip. Res. Anal., vol. 05, no. 05, pp. 907–910, 2022, doi: 10.47191/ijmra/v5-i5-03.
[27]A. H. Sial, S. Yahya, and S. Rashdi, “Comparative Analysis of Data Visualization Libraries Matplotlib and Seaborn in Python,” Int. J. Adv. Trends Comput. Sci. Eng., vol. 10, no. 1, pp. 277–281, 2021, doi: 10.30534/ijatcse/2021/391012021.
[28]L. Addepalli et al., “Assessing the Performance of Python Data Visualization Libraries: A Review,” Int. J. Comput. Eng. Res. Trends, vol. 10, no. 1, pp. 29–39, 2023.
[29]Z. K. Mundargi, K. Patel, A. Patel, R. More, S. Pathrabe, and S. Patil, “Plotplay: An Automated Data Visualization Website using Python and Plotly,” 2023 Int. Conf. Adv. Technol. ICONAT 2023, pp. 1–4, 2023, doi: 10.1109/ICONAT57137.2023.10079977.
[30]D. Punasya, H. Kushwah, H. Jain, and R. Sheikh, “an Application for Sales Data Analysis and Visualization Using Python and Django,” Int. Res. J. Mod. Eng., no. 06, pp. 1757–1762, 2021, [Online]. Available: www.irjmets.com
[31]J. Zhang, “Python based data visualization and configurable teaching system design and implementation,” Proc. IEEE Asia-Pacific Conf. Image Process. Electron. Comput. IPEC 2021, pp. 1136–1140, 2021, doi: 10.1109/IPEC51340.2021.9421127.
[32]A. M. Sadeq, “Engine Data Analysis and Visualization in Python,” no. September 2023, doi: 10.13140/RG.2.2.21054.87360.
[33]A. D. Emily M. Jennings-Dobbs, Shavawn M. Forester, “Visualizing data interoperability for food systems sustainability research—from spider webs to neural networks,” Curr. Dev. Nutr., p. 107386, 2023, doi: 10.1016/j.cdnut.2023.102006.
[34]Bala Dhandayuthapani V., "Implementation of Python Interoperability in Java through TCP Socket Communication", International Journal of Information Technology and Computer Science, Vol.15, No.4, pp.50-62, 2023. 
[35]A. Nguyen, “Programming Language interoperability in cross-platform software development,” Aalto University, 2022.