1. 推荐图片格式
EPS (矢量图、体积小、质量高)
2. 分辨率
大于 300dpi (也不宜过高,导致文件体积过大)
3. 配色网站
ColorBrewer 2.0
4. subplots
Matplotlib 库中
fig, ax = plt.subplots(nrows, ncols, figsize=(width, height), dpi=dpi, sharex=sharex, sharey=sharey)
其中各参数的含义如下:
- `nrows` 和 `ncols`:表示子图的行数和列数。如果只需要一个子图,可以将它们都设置为1。
- `figsize`:一个包含画布宽度和高度的元组,用于指定画布的尺寸(单位是英寸)。
- `dpi`:用于指定绘图的分辨率(每英寸像素数)。
- `sharex` 和 `sharey`:布尔值,用于指定是否共享x轴和y轴刻度。如果设置为True,子图将共享刻度。
- 返回值 `fig` 和 `ax`:`fig` 是一个画布对象,`ax` 是一个包含子图或子图数组的对象。它可以是一个Axes对象,也可以是Axes对象的二维数组,具体取决于指定的 `nrows` 和 `ncols`。
import matplotlib.pyplot as plt # 创建一个包含两个子图的画布 fig, axs = plt.subplots(1, 2, figsize=(10, 5), dpi=100) # 在第一个子图上添加绘图元素 axs[0].plot([1, 2, 3], [4, 5, 6]) axs[0].set_title("Subplot 1") axs[0].set_xlabel("X Label") axs[0].set_ylabel("Y Label") # 在第二个子图上添加绘图元素 axs[1].scatter([1, 2, 3], [7, 8, 9], color='r') axs[1].set_title("Subplot 2") axs[1].set_xlabel("X Label") axs[1].set_ylabel("Y Label") # 调整子图之间的间距 plt.tight_layout() # 显示绘图 plt.show()
5. Color bar
import numpy as np
import matplotlib.pyplot as plt
# 生成随机数据
np.random.seed(0)
Population = np.random.uniform(100, 2500, 50)
GDP = np.random.uniform(1000, 30000, 50)
House_price = np.random.uniform(3000, 100000, 50) # 用于设置颜色的数据
# 设置字体
plt.rcParams['font.sans-serif'] = 'simsun'
plt.rcParams['font.size'] = 12
# 创建绘图对象和子图
fig, ax = plt.subplots()
# 绘制散点图,并设置颜色主题(cmap参数)
sc = ax.scatter(GDP, Population, c=House_price, cmap='cividis')
# 添加颜色条
cbar = plt.colorbar(sc)
cbar.set_label('房价') # 颜色条标签
# 设置标题和轴标签
ax.set_title('城市GDP、人口与房价')
ax.set_xlabel('X GDP')
ax.set_ylabel('Y 人口')
# 显示图形
plt.show()