【问题标题】:pandas plot two variables using character熊猫使用字符绘制两个变量
【发布时间】:2017-11-18 05:22:26
【问题描述】:

我正在尝试绘制两个变量 fdr_new 和 fdr_old 具有不同的字符和颜色蓝色和 fdr_old 红色的 o 和 fdr_new 的 x 下面是我尝试过的我在我的情节上看不到任何红色和 x 不确定我是什么做错了(只粘贴 df.head())

df :

df = pd.read_csv('~/plot.txt', sep='\t')
df.head()
id1 fdr_new fdr_old
a   0.025673    0.004912
b   0.098444    0.002133
c   0.00003 0.000004
d   0.330957    0.302002
e   0.939168    0.932705

代码:

coff.plot(x='fdr_new', y='fdr_old', style=['bo','rx'])

使用代码绘图:

import pandas as pd 
import seaborn as sns
%matplotlib inline
import matplotlib.pyplot as plt
%config InlineBackend.figure_format = 'retina'
rd = pd.read_clipboard()
rd.head()
        id1 fdr_new fdr_old
0   a   0.025673    0.004912
1   b   0.098444    0.002133
2   c   0.000030    0.000004
3   d   0.330957    0.302002
4   e   0.939168    0.932705
rd.plot(x = 'id1', y = ['fdr_new','fdr_old'], style=['bo','rx'])

改变颜色:

关闭和停止后:

改变风格的同时删除了 import 'retina' 命令。

【问题讨论】:

    标签: python-2.7 pandas plot


    【解决方案1】:

    这是一个散点图,其中每个点都是坐标对,其中一部分来自fdf_new,另一部分来自fdr_old。该图上没有任何意义仅来自fdr_newfdr_old。因为您的 fdr_old 被指定为您的 y 轴,所以它被假定为系列名称,这就是您在图例中看到它的原因。但是只使用了第一种样式...因为您只有一个系列的点。

    我认为协调我认为您正在尝试做的唯一方法是将fdr_oldfdr_new 视为单独的时间序列。

    df[['fdr_old', 'fdr_new']].plot(style=['bo', 'rx'])
    

    您甚至可以将id1 放在 x 轴上

    df.set_index('id1').plot(style=['bo', 'rx'])
    

    【讨论】:

    • 无论我尝试哪种方法,我都没有看到两个数据点,我已经在主体中发布了图表
    • 你用的是什么版本的熊猫?
    • pd.__version__ u'0.19.2'
    • @sbradbio 嗯...我切换到0.19.0,它仍然对我有用。
    • 我们将其称为Minimal, Complete, and Verifiable example,它预期是我可以轻松复制并粘贴到我的 IDE 或环境中并运行的代码。如果您提供了良好的 MCVE,那么我应该能够立即看到您的问题。它的作用是消除任何歧义。所以我不会花时间质疑你的数据类型是什么,你有多少列,什么不是。如果给定 MCVE 我们无法解决您的问题,那么我们可以推断问题是基于版本的。
    【解决方案2】:

    可以使用多个 Y 轴参数

    df.plot(x = 'id1', y = ['fdr_new','fdr_old'], style=['bo','rx'])
    

    【讨论】:

    • 我得到了情节,所以它的一些问题与代码本身无关。可以尝试将 style=['bo','rx'] 更改为 style=['bo','gx'] 以查看它是否打印出不同颜色的 x?
    • 改变了它..没有成功..请看主图颜色改变
    • 我终于可以重现错误了。 import %config InlineBackend.figure_format = 'retina' 似乎是导致错误的原因,请参阅github上报告的问题:github.com/ipython/ipython/issues/8468
    • 我重新启动环境只是为了进行交叉检查,我能够在不导入 %config InlineBackend.figure_format = 'retina' 的情况下看到红叉
    • 您关闭并停止了吗?我第一次关闭笔记本并打开 - 它没有工作。我第二次在文件下拉菜单中使用关闭和停止,然后重新启动我的文件,它确实如此。
    猜你喜欢
    • 2016-06-26
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多