基本的熊猫matplotlib绘图

时间:2014-07-23 19:04:17

标签: python matplotlib pandas

很抱歉提出这样一个基本问题,但经过数小时(和数小时)的挫折后,我会转到列表寻求专家帮助。

我有两个pandas数据框,df1df2df1有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')

但是我无法使直方图工作,如果确实如此,它会创建一个包含散点图和直方图的图形。

非常感谢任何帮助。

1 个答案:

答案 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方法,但它们将适用于当前绘图。变量ax1ax2可让您在执行操作时获得更多自由。