【问题标题】:How to get all data on my x axis in Python from csv File如何从 csv 文件中获取 Python 中 x 轴上的所有数据
【发布时间】:2020-07-21 02:51:02
【问题描述】:

CSV 文件:

Words,Count
ca,110
tc,103
cg,103
gt,100
cc,98
at,96
gc,95
ct,95
aa,94
ta,94
ac,94
tt,91
ag,87
gg,84
ga,79
tg,77

代码:

from matplotlib import pyplot as plt
import pandas as pd
df = pd.read_csv('file.csv')
df.plot(kind='line', x='Words', y='Count',logx=True,logy=True)
plt.show()

当我得到我的情节时,我看到了这个: click here

我如何从 CSV 文件中获取我的 X 轴上的所有这些字母,因为我只有例如 ac 和 tc ?

更新

当我使用如下所示的 CSV 文件时,我现在遇到了另一个问题:

Words,Count
tgc,25
tca,24
agt,22
gac,22
gtc,22
cag,21
caa,21
ctg,21
act,21
atg,20
aaa,20
aat,20
cgt,20
att,20
gta,20
ttc,19
cct,19
ctt,18
agc,18
gct,18
cgg,18
ata,18
aag,18
tac,18
aca,18
cac,18
gtt,17
ggg,17
cgc,17
cta,17
gcc,17
cca,17
tcc,16
acc,16
tcg,16
atc,16
aga,15
gat,15
gtg,15
ttt,15
tat,15
gaa,14
tct,14
ccg,14
ggt,14
acg,13
gga,13
ccc,13
aac,12
gca,12
tgg,12
tta,12
cga,12
ctc,11
gag,11
gcg,11
agg,11
cat,11
ttg,11
ggc,9
tgt,9
tga,1

我的情节是这样的:click here 有没有机会在我的 x 轴上清楚地看到一切? 我现在的代码:

df = pd.read_csv("file2.csv")

ax=df.plot(kind='line', y='Count',logx=False,logy=True)
ax.xaxis.set_ticks(df.index)
ax.xaxis.set_ticklabels(df['Words'])
plt.figure(figsize=(10,30))
plt.show()

【问题讨论】:

    标签: python pandas csv matplotlib plot


    【解决方案1】:

    对刻度使用索引,对标签使用系列。

    ...
    ax = df.plot(kind='line', y='Count')
    ax.xaxis.set_ticks(df.index)
    ax.xaxis.set_ticklabels(df['Words'])
    plt.show()
    

    或者只是:

    df.plot(x='Words',y='Count',xticks=df.index)
    
    

    【讨论】:

      【解决方案2】:

      我认为您的主要问题是您将 x 轴也设置为对数。这是故意的吗?我猜它不是——至少我不知道如何仅用文本标签解释对数刻度轴。

      尝试仅使用对数 y 轴并明确设置 x-ticks 和 x-labels:

      df = pd.read_csv('file.csv')
      ax = df.plot(kind='line', x='Words', y='Count',logx=False,logy=True)
      
      ax.xaxis.set_ticks(df.index)
      ax.xaxis.set_ticklabels(df['Words'])
      
      plt.show()
      
      

      logx=False 也可以省略,因为它是默认值。)

      【讨论】:

      • 这会显示 所有 csv 第一列中的标签吗?
      • 对我来说是这样,是的。
      • 上传了结果图片
      • 可能。我删除了我的评论,因为我不想让你把你的答案记下来,因为它可能是正确的答案。不过,我认为最好先理清 OP 的意图,而不是发布对提出不当问题的答案。 (例如,我想对此表示赞同,但实际上不能,因为 OP 可能会以一种使该答案无关紧要的方式澄清问题。)
      • 是的,我试过用双对数刻度制作这个。因为如果可能的话,我很感兴趣。
      猜你喜欢
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2020-10-17
      • 2019-12-02
      • 1970-01-01
      相关资源
      最近更新 更多