散点图字体大小为12,字号中文为宋体,英文为Times New Romans,图例放于散点图外部右上方
时间: 2024-04-16 12:26:19 浏览: 156
要设置散点图中的字体大小、字体类型和例位置,你可以使用 `matplotlib` 库中的相关函数和参数。以下是一个示例代码,演示如何设置散点图的字体大小和字体类型,并将图例放在散点图外部右上方:
```python
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
def plot_scatter(data_dict):
fig, ax = plt.subplots()
markers = ['o', 's', '^', 'd'] # 可根据数据类型个数自行扩展
colors = ['red', 'blue', 'green', 'orange'] # 可根据数据类型个数自行扩展
font_chinese = FontProperties(fname='path/to/chinese_font.ttf', size=12) # 替换为你的中文字体文件路径
font_english = 'Times New Roman'
for i, (key, values) in enumerate(data_dict.items()):
x = values['time']
y = values['residuals']
ax.scatter(x, y, marker=markers[i], color=colors[i], label=key)
ax.set_xlabel('Time', fontsize=12)
ax.set_ylabel('residuals', fontsize=12)
ax.legend(loc='upper right', bbox_to_anchor=(1.2, 1), prop=font_chinese)
ax.tick_params(axis='x', direction='in')
plt.xticks(fontproperties=font_english)
plt.yticks(fontproperties=font_english)
plt.show()
# 示例数据字典
data_dict = {
'data1': {
'time': ['10:15:00', '11:30:00', '12:45:00'],
'residuals': [0.5, 0.8, 1.2]
},
'data2': {
'time': ['10:20:00', '11:40:00', '12:50:00'],
'residuals': [-0.3, -0.6, -0.9]
}
}
plot_scatter(data_dict)
```
在上述代码中,我们首先导入 `matplotlib.pyplot` 和 `FontProperties` 类。然后定义了一个 `plot_scatter` 函数来绘制散点图。通过 `FontProperties` 类可以指定中文字体文件路径和字体大小,将其赋值给 `font_chinese` 变量。将英文字体类型设置为 `'Times New Roman'`,赋值给 `font_english` 变量。
在绘制散点图时,使用 `ax.set_xlabel` 和 `ax.set_ylabel` 函数设置 x 轴和 y 轴标签,并指定字体大小为 12。使用 `ax.legend` 函数将图例放在散点图外部右上方,并通过 `bbox_to_anchor` 参数调整位置。使用 `prop` 参数设置图例中文的字体为 `font_chinese`。使用 `ax.tick_params` 函数设置 x 轴刻度朝内。
最后,通过 `plt.xticks` 和 `plt.yticks` 函数分别设置 x 轴和 y 轴刻度的英文字体类型为 Times New Roman。
你需要将示例数据字典 `data_dict` 替换为你的实际数据字典,并将 `'path/to/chinese_font.ttf'` 替换为你的中文字体文件路径。然后运行代码,会弹出一个窗口显示散点图,并应用了设置的字体大小、字体类型和图例位置。
阅读全文