How to print x-axes labels in pandas.Series.plot()?












0












$begingroup$


I am trying to visualise my data to understand the data skewness. For that purpose, I use the below and get desired output -



df.groupby('owner_team').inc_subj.count().plot.bar(ylim=0)


Output -
enter image description here
My concern is the x-axes labels are shown as numbers, which is the exactly values present. But, my desire is to see the names (string values) corresponding to those numbers.



To give a little bit of background, initially they were string values which I converted to integer values using factorize():



df['owner_team'], mapp = df['owner_team'].factorize()


I am referencing this Pandas doc but couldn't find the exact parameter to set.
Tried labels but didn't help.



Any pointers please.



ps. Using Pandas v0.23.4 and Python v3.6










share|improve this question









$endgroup$








  • 1




    $begingroup$
    Without sample data it is hard to understand where the names are stored.
    $endgroup$
    – gented
    2 days ago
















0












$begingroup$


I am trying to visualise my data to understand the data skewness. For that purpose, I use the below and get desired output -



df.groupby('owner_team').inc_subj.count().plot.bar(ylim=0)


Output -
enter image description here
My concern is the x-axes labels are shown as numbers, which is the exactly values present. But, my desire is to see the names (string values) corresponding to those numbers.



To give a little bit of background, initially they were string values which I converted to integer values using factorize():



df['owner_team'], mapp = df['owner_team'].factorize()


I am referencing this Pandas doc but couldn't find the exact parameter to set.
Tried labels but didn't help.



Any pointers please.



ps. Using Pandas v0.23.4 and Python v3.6










share|improve this question









$endgroup$








  • 1




    $begingroup$
    Without sample data it is hard to understand where the names are stored.
    $endgroup$
    – gented
    2 days ago














0












0








0





$begingroup$


I am trying to visualise my data to understand the data skewness. For that purpose, I use the below and get desired output -



df.groupby('owner_team').inc_subj.count().plot.bar(ylim=0)


Output -
enter image description here
My concern is the x-axes labels are shown as numbers, which is the exactly values present. But, my desire is to see the names (string values) corresponding to those numbers.



To give a little bit of background, initially they were string values which I converted to integer values using factorize():



df['owner_team'], mapp = df['owner_team'].factorize()


I am referencing this Pandas doc but couldn't find the exact parameter to set.
Tried labels but didn't help.



Any pointers please.



ps. Using Pandas v0.23.4 and Python v3.6










share|improve this question









$endgroup$




I am trying to visualise my data to understand the data skewness. For that purpose, I use the below and get desired output -



df.groupby('owner_team').inc_subj.count().plot.bar(ylim=0)


Output -
enter image description here
My concern is the x-axes labels are shown as numbers, which is the exactly values present. But, my desire is to see the names (string values) corresponding to those numbers.



To give a little bit of background, initially they were string values which I converted to integer values using factorize():



df['owner_team'], mapp = df['owner_team'].factorize()


I am referencing this Pandas doc but couldn't find the exact parameter to set.
Tried labels but didn't help.



Any pointers please.



ps. Using Pandas v0.23.4 and Python v3.6







python pandas matplotlib






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 2 days ago









ranit.branit.b

427




427








  • 1




    $begingroup$
    Without sample data it is hard to understand where the names are stored.
    $endgroup$
    – gented
    2 days ago














  • 1




    $begingroup$
    Without sample data it is hard to understand where the names are stored.
    $endgroup$
    – gented
    2 days ago








1




1




$begingroup$
Without sample data it is hard to understand where the names are stored.
$endgroup$
– gented
2 days ago




$begingroup$
Without sample data it is hard to understand where the names are stored.
$endgroup$
– gented
2 days ago










1 Answer
1






active

oldest

votes


















2












$begingroup$

Having a look at the Pandas plot method (on the DataFrame object), we can see that it returns a matplotlib Axes object.



Try something like this:



ax = df.groupby('owner_team').inc_subj.count().plot.bar(ylim=0)

ax.set_xticklabels(df.owner_team) # if they are still present as strings


If you removed that column, go back to your original processing and keep a copy of it somewhere then use that column above, instead.





Matplotlib will also generally be able to link to the current/latest plot (figure) that has been created. So using the Pandas plot method, you would need to intercept that.You can then try using standard matplotlib methods (e.g. plt.xlabels and so on).



Ther emight be a nice way using the pandas API directly, but I haven't come across that.






share|improve this answer









$endgroup$













  • $begingroup$
    You nailed it. Many thanks!
    $endgroup$
    – ranit.b
    2 days ago










  • $begingroup$
    I used ax.set_xticklabels(mapp) and got the labels printed. Thanks. :)
    $endgroup$
    – ranit.b
    2 days ago











Your Answer





StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "557"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f46782%2fhow-to-print-x-axes-labels-in-pandas-series-plot%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









2












$begingroup$

Having a look at the Pandas plot method (on the DataFrame object), we can see that it returns a matplotlib Axes object.



Try something like this:



ax = df.groupby('owner_team').inc_subj.count().plot.bar(ylim=0)

ax.set_xticklabels(df.owner_team) # if they are still present as strings


If you removed that column, go back to your original processing and keep a copy of it somewhere then use that column above, instead.





Matplotlib will also generally be able to link to the current/latest plot (figure) that has been created. So using the Pandas plot method, you would need to intercept that.You can then try using standard matplotlib methods (e.g. plt.xlabels and so on).



Ther emight be a nice way using the pandas API directly, but I haven't come across that.






share|improve this answer









$endgroup$













  • $begingroup$
    You nailed it. Many thanks!
    $endgroup$
    – ranit.b
    2 days ago










  • $begingroup$
    I used ax.set_xticklabels(mapp) and got the labels printed. Thanks. :)
    $endgroup$
    – ranit.b
    2 days ago
















2












$begingroup$

Having a look at the Pandas plot method (on the DataFrame object), we can see that it returns a matplotlib Axes object.



Try something like this:



ax = df.groupby('owner_team').inc_subj.count().plot.bar(ylim=0)

ax.set_xticklabels(df.owner_team) # if they are still present as strings


If you removed that column, go back to your original processing and keep a copy of it somewhere then use that column above, instead.





Matplotlib will also generally be able to link to the current/latest plot (figure) that has been created. So using the Pandas plot method, you would need to intercept that.You can then try using standard matplotlib methods (e.g. plt.xlabels and so on).



Ther emight be a nice way using the pandas API directly, but I haven't come across that.






share|improve this answer









$endgroup$













  • $begingroup$
    You nailed it. Many thanks!
    $endgroup$
    – ranit.b
    2 days ago










  • $begingroup$
    I used ax.set_xticklabels(mapp) and got the labels printed. Thanks. :)
    $endgroup$
    – ranit.b
    2 days ago














2












2








2





$begingroup$

Having a look at the Pandas plot method (on the DataFrame object), we can see that it returns a matplotlib Axes object.



Try something like this:



ax = df.groupby('owner_team').inc_subj.count().plot.bar(ylim=0)

ax.set_xticklabels(df.owner_team) # if they are still present as strings


If you removed that column, go back to your original processing and keep a copy of it somewhere then use that column above, instead.





Matplotlib will also generally be able to link to the current/latest plot (figure) that has been created. So using the Pandas plot method, you would need to intercept that.You can then try using standard matplotlib methods (e.g. plt.xlabels and so on).



Ther emight be a nice way using the pandas API directly, but I haven't come across that.






share|improve this answer









$endgroup$



Having a look at the Pandas plot method (on the DataFrame object), we can see that it returns a matplotlib Axes object.



Try something like this:



ax = df.groupby('owner_team').inc_subj.count().plot.bar(ylim=0)

ax.set_xticklabels(df.owner_team) # if they are still present as strings


If you removed that column, go back to your original processing and keep a copy of it somewhere then use that column above, instead.





Matplotlib will also generally be able to link to the current/latest plot (figure) that has been created. So using the Pandas plot method, you would need to intercept that.You can then try using standard matplotlib methods (e.g. plt.xlabels and so on).



Ther emight be a nice way using the pandas API directly, but I haven't come across that.







share|improve this answer












share|improve this answer



share|improve this answer










answered 2 days ago









n1k31t4n1k31t4

6,2912319




6,2912319












  • $begingroup$
    You nailed it. Many thanks!
    $endgroup$
    – ranit.b
    2 days ago










  • $begingroup$
    I used ax.set_xticklabels(mapp) and got the labels printed. Thanks. :)
    $endgroup$
    – ranit.b
    2 days ago


















  • $begingroup$
    You nailed it. Many thanks!
    $endgroup$
    – ranit.b
    2 days ago










  • $begingroup$
    I used ax.set_xticklabels(mapp) and got the labels printed. Thanks. :)
    $endgroup$
    – ranit.b
    2 days ago
















$begingroup$
You nailed it. Many thanks!
$endgroup$
– ranit.b
2 days ago




$begingroup$
You nailed it. Many thanks!
$endgroup$
– ranit.b
2 days ago












$begingroup$
I used ax.set_xticklabels(mapp) and got the labels printed. Thanks. :)
$endgroup$
– ranit.b
2 days ago




$begingroup$
I used ax.set_xticklabels(mapp) and got the labels printed. Thanks. :)
$endgroup$
– ranit.b
2 days ago


















draft saved

draft discarded




















































Thanks for contributing an answer to Data Science Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f46782%2fhow-to-print-x-axes-labels-in-pandas-series-plot%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Callistus I

Tabula Rosettana

How to label and detect the document text images