前哨站/代码速查
代码速查

代码速查

按工具分组,做作业时对着抄改即可。

matplotlib 基础

中文与负号

PYTHON
matplotlib.rcParams["font.sans-serif"] = ["SimHei"]
matplotlib.rcParams["axes.unicode_minus"] = False

画布与保存

PYTHON
fig, ax = plt.subplots(figsize=(8,4), dpi=120)
plt.tight_layout()
plt.savefig("x.png", bbox_inches="tight")

四种基础图

PYTHON
ax.plot(x, y)      # 折线
ax.bar(x, y)       # 柱状
ax.scatter(x, y)   # 散点
ax.hist(x, bins=30) # 直方图

标题与轴

PYTHON
ax.set_title("结论型标题")
ax.set_xlabel("月份"); ax.set_ylabel("销售额(万元)")
ax.grid(axis="y", linestyle="--", alpha=.3); ax.set_axisbelow(True)

标注与图例

PYTHON
ax.annotate("峰值", xy=(6,320), xytext=(7,380),
            arrowprops=dict(arrowstyle="->"))
ax.legend(frameon=False)

多子图

PYTHON
fig, axes = plt.subplots(1, 2, figsize=(11,4))
axes[0].bar(...); axes[1].plot(...)

pandas 数据准备

读取与落盘

PYTHON
df = pd.read_csv("sales.csv")
df.to_excel("out.xlsx", index=False)

分组聚合

PYTHON
df.groupby("province", as_index=False)["sales"].sum()
  .sort_values("sales", ascending=False)

缺失与去重

PYTHON
df.isna().sum()
df["sales"] = df["sales"].fillna(df["sales"].median())
df = df.drop_duplicates(subset=["id"])

长宽表转换

PYTHON
long = df.melt(id_vars=["province"], value_vars=["2024","2025"])
wide = long.pivot_table(index="province", columns="year", values="sales")

分箱与归一化

PYTHON
pd.cut(df["price"], bins=[0,50,100,500,1e9])
df["n"] = (df.sales - df.sales.min()) / (df.sales.max() - df.sales.min())

seaborn

箱线图 / 热力图 / 回归图

PYTHON
sns.boxplot(data=df, x="province", y="sales")
sns.heatmap(pivot, cmap="Blues")
sns.regplot(data=df, x="price", y="qty")

主题

PYTHON
plt.style.use("seaborn-v0_8-whitegrid")

pyecharts

柱状图输出 HTML

PYTHON
Bar().add_xaxis(x).add_yaxis("销售额", y).set_global_opts(
    title_opts=opts.TitleOpts(title="各省销售额")).render("bar.html")

折线图多系列

PYTHON
Line().add_xaxis(x).add_yaxis("2024", y1).add_yaxis("2025", y2)

ECharts(JS)

最小骨架

JAVASCRIPT
const c = echarts.init(document.getElementById("main"));
c.setOption({ title:{text:"标题"}, tooltip:{trigger:"axis"},
  xAxis:{type:"category",data:[...]}, yAxis:{type:"value"},
  series:[{type:"bar",data:[...]}] });
window.addEventListener("resize",()=>c.resize());

折线/饼/堆叠

JAVASCRIPT
series:[{type:"line",smooth:true,data:[...]}]
series:[{type:"pie",radius:["45%","70%"],data:[{value:1,name:"A"}]}]
series:[{type:"bar",stack:"total",data:[...]}]

缩放与图例

JAVASCRIPT
dataZoom:[{type:"inside"},{type:"slider"}]
legend:{top:8}