如何使用分类 x-axis 绘制 matplotlib 散点图,允许我根据第三个变量指定标记和颜色?

How can I do a matplotlib scatter plot with a categorical x-axis, that allows me to specify the marker and color based on a third variable?

这是我的数据框:https://i.stack.imgur.com/WJQWg.png

我需要一个 matplotlib 散点图,该散点图将电影标题作为 x-axis 上的标签,按照 'Order' 列给出的顺序。我还希望标记的颜色由电影的类型决定。我如何使用 Matplotlib 做到这一点?

请注意,理想情况下,我希望对 matplotlib 使用 object-oriented 方法 - 即使用:

fig, ax = plt.subplots()

由于您只指定 x 值而不指定 y 值,因此很难知道您的确切目标。但是您可以使用以下代码创建包含分类数据的散点图。我选择将 'Order' 列绘制为 y 值,但您也可以修改代码以绘制其他内容或根据需要重新排序数据。所以给你:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

data = {'Order': np.arange(4), 'Movie Title': ['a', 'b', 'c', 'd'], 'Genre': ['genre2', 'genre1', 'genre1','genre2']}

df = pd.DataFrame.from_dict(data)

fig, ax = plt.subplots()
ax.scatter(df['Movie Title'], df['Order'],
           c=['blue' if g=='genre1' else 'red' for g in df['Genre']])
plt.show()