使用Matplotlib,根据前期收集数据生成两张不同类型的图。图中包含多个数据对象、每个数据对象有多个属性,不同属性值用不同颜色区分,每个数据有标签。每张图要有中文标题,英文字体为Times New Roman,图片大小为高8cm、宽10cm,分辨率为500dpi。
时间: 2024-10-25 09:15:35 浏览: 22
在Python中使用Matplotlib库生成不同类型的图,比如散点图和线图,可以按照以下步骤操作:
首先,假设我们已经有一个数据集`data`,它是一个包含多个对象的数据结构,每个对象都有多个属性,例如`property_1`和`property_2`。我们可以用`matplotlib.pyplot`模块中的`scatter()`函数创建散点图,用`plot()`函数创建线图。
```python
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# 假设data是一个字典列表,其中每个元素如:{'label': 'A', 'property_1': [x1, x2, ...], 'property_2': [y1, y2, ...]}
# 图片设置
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置中文显示
plt.rc('text', usetex=True) # 设置英文文本字体为Times New Roman
fig, axs = plt.subplots(2, figsize=(10, 8), dpi=500)
# 散点图
axs[0].scatter(data['property_1'], data['property_2'], c=data['labels'], cmap='viridis') # 根据标签颜色编码
axs[0].set_title('散点图 - 数据分布', fontsize=16, fontproperties=fm.FontProperties(fname=r'times.ttf')) # 中文标题
axs[0].legend() # 添加图例
# 线图
axs[1].plot(data['time'], data['property_1'], label=data['labels']) # 每个数据点的线对应不同的标签
axs[1].set_title('线图 - 时间序列变化', fontsize=16, fontproperties=fm.FontProperties(fname=r'times.ttf'))
axs[1].grid(True)
axs[1].legend()
plt.show()
```
这里我们设置了中文支持,并指定了Times New Roman字体。注意,`times.ttf`文件应放置在同一目录下或提供正确的路径,以确保能找到这个字体文件。如果需要动态调整字体大小,可以直接修改`fontsize`数值。
阅读全文