很抱歉提出这样一个基本问题,但经过数小时(和数小时)的挫折后,我会转到列表寻求专家帮助。
我有两个pandas数据框,df1
和df2
。 df1
有A列和B列,而df2
有C列和D列。我想使用matplotlib制作A对B的散点图,标记轴和C的直方图,也是x轴上的标题。然后我想将这两个数字保存在pdf文件中。
我可以用
完成前者import matplotlib.pyplot as plt
plt.scatter(df1['A'],df1['B'])
plt.xlabel('X title')
plt.ylabel('Y title')
plt.savefig('myfig1.pdf')
但是我无法使直方图工作,如果确实如此,它会创建一个包含散点图和直方图的图形。
非常感谢任何帮助。
答案 0 :(得分:1)
听起来你只需要为直方图制作另一个数字,
import matplotlib.pyplot as plt
fig1 = plt.figure()
plt.scatter(df1['A'],df1['B'])
plt.xlabel('X title')
plt.ylabel('Y title')
plt.savefig('myfig1.pdf')
fig2 = plt.figure()
... <histogram code>
或者您可以将轴分配给变量,这样您就不必按顺序执行所有操作,
import random
x = [random.random() for i in range(50)]
y = [random.random() for i in range(50)]
fig1 = plt.figure()
ax1 = fig1.add_subplot(111)
fig2 = plt.figure()
ax2 = fig2.add_subplot(111)
ax1.scatter( x, y )
ax1.set_xlabel('X title')
ax1.set_ylabel('Y title')
fig1.savefig('myfig1.pdf')
ax2.hist( y )
请注意,使用其方法设置轴的属性时,大多数plt
属性都会变为set_X
。例如,代替plt.ylabel('my_y')
,您执行ax1.set_ylabel('my_y')
。您仍然可以使用plt
方法,但它们将适用于当前绘图。变量ax1
和ax2
可让您在执行操作时获得更多自由。