Seth,
Also, here's a code snippet demonstrating how to work with the subsets of positions corresponding to each type. As Vyas mentioned, you'll need to use another trajectory reading tool to actually get these subsets of positions by type, since freud doesn't handle types.
import freud
import matplotlib
import matplotlib.pyplot as plt
matplotlib.use('agg')
# Create two arrays, representing the positions of type A and type B
box, points_A = freud.data.make_random_system(box_size=5, num_points=10000)
box, points_B = freud.data.make_random_system(box_size=5, num_points=10000)
rdf = freud.density.RDF(bins=50, r_max=2)
# Use one set of points to construct the system, and another set of points
# as the "query_points"
rdf.compute((box, points_A), query_points=points_B)
plt.figure()
rdf.plot(ax=plt.gca())
plt.savefig('rdf_mixture.png')
I have attached this script and its image output.
Best,
Bradley