Using pyecharts for Data Visualization in Python: Installation, Examples, and Chart Types
This tutorial introduces pyecharts, a Python library that integrates with ECharts, covering installation via pip, handling network issues with a Tsinghua mirror, and detailed code examples for creating bar, pie, boxplot, line, radar, scatter, grid, and overlapping charts to visualize monthly precipitation and evaporation data.
pyecharts is a powerful Python library that combines Python with the ECharts JavaScript visualization framework, enabling a wide range of chart types directly from Python code.
Installation
pip install pyechartsBecause of network restrictions, it is recommended to use the Tsinghua mirror:
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pyechartsAfter a successful installation, you can start creating charts. The following examples use monthly precipitation and evaporation data.
Bar Chart
from pyecharts import Bar
columns = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]
data1 = [2.0,4.9,7.0,23.2,25.6,76.7,135.6,162.2,32.6,20.0,6.4,3.3]
data2 = [2.6,5.9,9.0,26.4,28.7,70.7,175.6,182.2,48.7,18.8,6.0,2.3]
bar = Bar("Bar Chart", "Annual Precipitation and Evaporation")
bar.add("Precipitation", columns, data1, mark_line=["average"], mark_point=["max","min"])
bar.add("Evaporation", columns, data2, mark_line=["average"], mark_point=["max","min"])
bar.render()Pie Chart
from pyecharts import Pie
pie = Pie("Pie Chart", "Annual Precipitation and Evaporation", title_pos='center', width=900)
pie.add("Precipitation", columns, data1, center=[25,50], is_legend_show=False)
pie.add("Evaporation", columns, data2, center=[75,50], is_legend_show=False, is_label_show=True)
pie.render()Boxplot
from pyecharts import Boxplot
boxplot = Boxplot("Boxplot", "Annual Precipitation and Evaporation")
x_axis = ['Precipitation','Evaporation']
y_axis = [data1, data2]
yaxis = boxplot.prepare_data(y_axis)
boxplot.add("Weather Statistics", x_axis, yaxis)
boxplot.render()Line Chart
from pyecharts import Line
line = Line("Line Chart", "Annual Precipitation and Evaporation")
line.add("Precipitation", columns, data1, is_label_show=True)
line.add("Evaporation", columns, data2, is_label_show=True)
line.render()Radar Chart
from pyecharts import Radar
radar = Radar("Radar Chart", "Annual Precipitation and Evaporation")
radar_data1 = [[2.0,4.9,7.0,23.2,25.6,76.7,135.6,162.2,32.6,20.0,6.4,3.3]]
radar_data2 = [[2.6,5.9,9.0,26.4,28.7,70.7,175.6,182.2,48.7,18.8,6.0,2.3]]
schema = [
("Jan",5), ("Feb",10), ("Mar",10), ("Apr",50), ("May",50), ("Jun",200),
("Jul",200), ("Aug",200), ("Sep",50), ("Oct",50), ("Nov",10), ("Dec",5)
]
radar.config(schema)
radar.add("Precipitation", radar_data1)
radar.add("Evaporation", radar_data2, item_color="#1C86EE")
radar.render()Scatter Chart
from pyecharts import Scatter
scatter = Scatter("Scatter Chart", "Annual Precipitation and Evaporation")
scatter.add("Precipitation vs Evaporation", data1, data2, xaxis_name="Precipitation", yaxis_name="Evaporation", yaxis_name_gap=40)
scatter.render()Grid Layout
from pyecharts import Grid
line = Line("Line Chart", "Annual Precipitation and Evaporation", title_top="45%")
line.add("Precipitation", columns, data1, is_label_show=True)
line.add("Evaporation", columns, data2, is_label_show=True)
grid = Grid()
grid.add(bar, grid_bottom="60%")
grid.add(line, grid_top="60%")
grid.render()Overlap (Bar + Line)
from pyecharts import Overlap
overlap = Overlap()
bar = Bar("Bar-Line Overlap", "Annual Precipitation and Evaporation")
bar.add("Precipitation", columns, data1, mark_point=["max","min"])
bar.add("Evaporation", columns, data2, mark_point=["max","min"])
overlap.add(bar)
overlap.add(line)
overlap.render()The article concludes with a checklist: import the required chart modules, create chart objects, use add() to input data and configure options, and finally call render() to generate HTML files. It also mentions that pyecharts supports many 3D and map charts, with documentation available in Chinese.
Test Development Learning Exchange
Test Development Learning Exchange
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.