相关疑难解决方法(0)

Pandas/Pyplot中的散点图:如何按类别绘制

我正在尝试使用Pandas DataFrame对象在pyplot中创建一个简单的散点图,但是想要一种有效的方法来绘制两个变量,但是具有由第三列(键)指示的符号.我尝试过使用df.groupby的各种方法,但没有成功.下面是一个示例df脚本.这会根据'key1'为标记着色,但Id喜欢看到带有'key1'类别的图例.我接近了吗?谢谢.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.normal(10,1,30).reshape(10,3), index = pd.date_range('2010-01-01', freq = 'M', periods = 10), columns = ('one', 'two', 'three'))
df['key1'] = (4,4,4,6,6,6,8,8,8,8)
fig1 = plt.figure(1)
ax1 = fig1.add_subplot(111)
ax1.scatter(df['one'], df['two'], marker = 'o', c = df['key1'], alpha = 0.8)
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib pandas

73
推荐指数
6
解决办法
12万
查看次数

将matplotlib子图图形保存到图像文件

我是新来的matplotlib,正在lim步。就是说,我没有找到这个问题的明显答案。

我有一个散点图,希望按组进行着色,看起来像通过循环绘制滚动方式

这是我的可复制示例,基于上面的第一个链接:

import matplotlib.pyplot as plt
import pandas as pd
from pydataset import data

df = data('mtcars').iloc[0:10]
df['car'] = df.index

fig, ax = plt.subplots(1)
plt.figure(figsize=(12, 9))
for ind in df.index:
    ax.scatter(df.loc[ind, 'wt'], df.loc[ind, 'mpg'], label=ind)
ax.legend(bbox_to_anchor=(1.05, 1), loc=2)
# plt.show()
# plt.savefig('file.png')
Run Code Online (Sandbox Code Playgroud)

取消注释会plt.show()产生我想要的东西:

好情节

到处搜索,看起来就像plt.savefig()是保存文件的方式。如果我重新注释掉plt.show()plt.savefig()改为运行,则会得到空白的白色图片。这个问题,暗示这是由于show()之前致电引起的savefig(),但我已将其完全注释掉了。另一个问题有一条评论,建议我可以ax直接保存该对象,但这切断了我的图例:

切碎的传说

相同的问题也有替代方法使用fig.savefig()。我得到同样的传说。

这个问题,这似乎有关,但我不密谋DataFrame直接,所以我不知道如何应用答案(这里dtf …

python matplotlib figure

4
推荐指数
1
解决办法
7102
查看次数

标签 统计

matplotlib ×2

python ×2

figure ×1

pandas ×1