How do I plot my histogram for density rather than count? (Matplotlib)How do you change the size of figures drawn with matplotlib?How can I count the occurrences of a list item?How to plot two histograms together in R?How to put the legend out of the plotSave plot to image file instead of displaying it using MatplotlibHow to make IPython notebook matplotlib plot inlineCreating a matplotlib or seaborn histogram which uses percent rather than count?tableau density plot histogram without using RVariable Matplotlib Histogram Bin WidthHow to plot percent of 'y' against histogram of 'x'?

voltage of sounds of mp3files

Personal Teleportation as a Weapon

Is there a problem with hiding "forgot password" until it's needed?

Why is delta-v is the most useful quantity for planning space travel?

Displaying the order of the columns of a table

Is a roofing delivery truck likely to crack my driveway slab?

Can I Retrieve Email Addresses from BCC?

I'm in charge of equipment buying but no one's ever happy with what I choose. How to fix this?

Trouble understanding overseas colleagues

What is the oldest known work of fiction?

What is the opposite of 'gravitas'?

when is out of tune ok?

At which point does a character regain all their Hit Dice?

What is the intuitive meaning of having a linear relationship between the logs of two variables?

Valid Badminton Score?

Print name if parameter passed to function

Have I saved too much for retirement so far?

Will it be accepted, if there is no ''Main Character" stereotype?

Can somebody explain Brexit in a few child-proof sentences?

Increase performance creating Mandelbrot set in python

Failed to fetch jessie backports repository

Teaching indefinite integrals that require special-casing

How does it work when somebody invests in my business?

Why Were Madagascar and New Zealand Discovered So Late?



How do I plot my histogram for density rather than count? (Matplotlib)


How do you change the size of figures drawn with matplotlib?How can I count the occurrences of a list item?How to plot two histograms together in R?How to put the legend out of the plotSave plot to image file instead of displaying it using MatplotlibHow to make IPython notebook matplotlib plot inlineCreating a matplotlib or seaborn histogram which uses percent rather than count?tableau density plot histogram without using RVariable Matplotlib Histogram Bin WidthHow to plot percent of 'y' against histogram of 'x'?













0















I have a data frame called 'train' with a column 'string' and a column 'string length' and a column 'rank' which has ranking ranging from 0-4.



I want to create a histogram of the string length for each ranking and plot all of the histograms on one graph to compare. I am experiencing two issues with this:



The only way I can manage to do this is by creating separate datasets e.g. with the following type of code:



S0 = train.loc[train['rank'] == 0]
S1 = train.loc[train['rank'] == 1]


Then I create individual histograms for each dataset using:



plt.hist(train['string length'], bins = 100)
plt.show()


This code doesn't plot the density but instead plots the counts. How do I alter my code such that it plots density instead?



Is there also a way to do this without having to create separate datasets? I was told that my method is 'unpythonic'










share|improve this question






















  • Please read How to create a Minimal, Complete, and Verifiable example

    – Bazingaa
    Mar 21 at 15:27











  • Do you feel that I am missing any relevant information that needs to be added to my question?

    – summer_ZUGG
    Mar 21 at 15:31











  • An ideal question is where the code can simply be copied to reproduce the problem. Your question lacks the dataset and the minimal code to do so. If one wants to play with the code, one can't

    – Bazingaa
    Mar 21 at 15:32












  • Thanks for clarifying, I will edit my question accordingly

    – summer_ZUGG
    Mar 21 at 15:35











  • Does adding the density=True keyword not do what you want?

    – Ed Smith
    Mar 21 at 15:38















0















I have a data frame called 'train' with a column 'string' and a column 'string length' and a column 'rank' which has ranking ranging from 0-4.



I want to create a histogram of the string length for each ranking and plot all of the histograms on one graph to compare. I am experiencing two issues with this:



The only way I can manage to do this is by creating separate datasets e.g. with the following type of code:



S0 = train.loc[train['rank'] == 0]
S1 = train.loc[train['rank'] == 1]


Then I create individual histograms for each dataset using:



plt.hist(train['string length'], bins = 100)
plt.show()


This code doesn't plot the density but instead plots the counts. How do I alter my code such that it plots density instead?



Is there also a way to do this without having to create separate datasets? I was told that my method is 'unpythonic'










share|improve this question






















  • Please read How to create a Minimal, Complete, and Verifiable example

    – Bazingaa
    Mar 21 at 15:27











  • Do you feel that I am missing any relevant information that needs to be added to my question?

    – summer_ZUGG
    Mar 21 at 15:31











  • An ideal question is where the code can simply be copied to reproduce the problem. Your question lacks the dataset and the minimal code to do so. If one wants to play with the code, one can't

    – Bazingaa
    Mar 21 at 15:32












  • Thanks for clarifying, I will edit my question accordingly

    – summer_ZUGG
    Mar 21 at 15:35











  • Does adding the density=True keyword not do what you want?

    – Ed Smith
    Mar 21 at 15:38













0












0








0








I have a data frame called 'train' with a column 'string' and a column 'string length' and a column 'rank' which has ranking ranging from 0-4.



I want to create a histogram of the string length for each ranking and plot all of the histograms on one graph to compare. I am experiencing two issues with this:



The only way I can manage to do this is by creating separate datasets e.g. with the following type of code:



S0 = train.loc[train['rank'] == 0]
S1 = train.loc[train['rank'] == 1]


Then I create individual histograms for each dataset using:



plt.hist(train['string length'], bins = 100)
plt.show()


This code doesn't plot the density but instead plots the counts. How do I alter my code such that it plots density instead?



Is there also a way to do this without having to create separate datasets? I was told that my method is 'unpythonic'










share|improve this question














I have a data frame called 'train' with a column 'string' and a column 'string length' and a column 'rank' which has ranking ranging from 0-4.



I want to create a histogram of the string length for each ranking and plot all of the histograms on one graph to compare. I am experiencing two issues with this:



The only way I can manage to do this is by creating separate datasets e.g. with the following type of code:



S0 = train.loc[train['rank'] == 0]
S1 = train.loc[train['rank'] == 1]


Then I create individual histograms for each dataset using:



plt.hist(train['string length'], bins = 100)
plt.show()


This code doesn't plot the density but instead plots the counts. How do I alter my code such that it plots density instead?



Is there also a way to do this without having to create separate datasets? I was told that my method is 'unpythonic'







python pandas matplotlib statistics histogram






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Mar 21 at 15:23









summer_ZUGGsummer_ZUGG

82




82












  • Please read How to create a Minimal, Complete, and Verifiable example

    – Bazingaa
    Mar 21 at 15:27











  • Do you feel that I am missing any relevant information that needs to be added to my question?

    – summer_ZUGG
    Mar 21 at 15:31











  • An ideal question is where the code can simply be copied to reproduce the problem. Your question lacks the dataset and the minimal code to do so. If one wants to play with the code, one can't

    – Bazingaa
    Mar 21 at 15:32












  • Thanks for clarifying, I will edit my question accordingly

    – summer_ZUGG
    Mar 21 at 15:35











  • Does adding the density=True keyword not do what you want?

    – Ed Smith
    Mar 21 at 15:38

















  • Please read How to create a Minimal, Complete, and Verifiable example

    – Bazingaa
    Mar 21 at 15:27











  • Do you feel that I am missing any relevant information that needs to be added to my question?

    – summer_ZUGG
    Mar 21 at 15:31











  • An ideal question is where the code can simply be copied to reproduce the problem. Your question lacks the dataset and the minimal code to do so. If one wants to play with the code, one can't

    – Bazingaa
    Mar 21 at 15:32












  • Thanks for clarifying, I will edit my question accordingly

    – summer_ZUGG
    Mar 21 at 15:35











  • Does adding the density=True keyword not do what you want?

    – Ed Smith
    Mar 21 at 15:38
















Please read How to create a Minimal, Complete, and Verifiable example

– Bazingaa
Mar 21 at 15:27





Please read How to create a Minimal, Complete, and Verifiable example

– Bazingaa
Mar 21 at 15:27













Do you feel that I am missing any relevant information that needs to be added to my question?

– summer_ZUGG
Mar 21 at 15:31





Do you feel that I am missing any relevant information that needs to be added to my question?

– summer_ZUGG
Mar 21 at 15:31













An ideal question is where the code can simply be copied to reproduce the problem. Your question lacks the dataset and the minimal code to do so. If one wants to play with the code, one can't

– Bazingaa
Mar 21 at 15:32






An ideal question is where the code can simply be copied to reproduce the problem. Your question lacks the dataset and the minimal code to do so. If one wants to play with the code, one can't

– Bazingaa
Mar 21 at 15:32














Thanks for clarifying, I will edit my question accordingly

– summer_ZUGG
Mar 21 at 15:35





Thanks for clarifying, I will edit my question accordingly

– summer_ZUGG
Mar 21 at 15:35













Does adding the density=True keyword not do what you want?

– Ed Smith
Mar 21 at 15:38





Does adding the density=True keyword not do what you want?

– Ed Smith
Mar 21 at 15:38












1 Answer
1






active

oldest

votes


















0














You could do something like:



df.loc[:, df.columns != 'string'].groupby('rank').hist(density=True, bins =10, figsize=(5,5))


Basically, what it does is select all columns except string, group them by rank and make an histogram of all them following the arguments.



The density argument set to density=True draws it in a normalized manner, as



Hope this has helped.



EDIT:



f there are more variables and you want the histograms overlapped, try:



df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))





share|improve this answer










New contributor




BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 1





    Hi, thank you for your answer. I tried this method but this seems to be giving me a histogram for every column in my data rather than a histogram for every rank. It is also plotting the histograms on separate graphs rather than overlapping them.

    – summer_ZUGG
    Mar 21 at 15:54











  • My apologies. If there are more variables and you want the histograms overlapped, try: df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))

    – BCJuan
    Mar 21 at 16:39












  • I have added it as an edit of the main answer so everyone can see it.

    – BCJuan
    Mar 21 at 17:06











  • Thank you so much for this! Very helpful :)

    – summer_ZUGG
    Mar 21 at 17:16










Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
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: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
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%2fstackoverflow.com%2fquestions%2f55283837%2fhow-do-i-plot-my-histogram-for-density-rather-than-count-matplotlib%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









0














You could do something like:



df.loc[:, df.columns != 'string'].groupby('rank').hist(density=True, bins =10, figsize=(5,5))


Basically, what it does is select all columns except string, group them by rank and make an histogram of all them following the arguments.



The density argument set to density=True draws it in a normalized manner, as



Hope this has helped.



EDIT:



f there are more variables and you want the histograms overlapped, try:



df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))





share|improve this answer










New contributor




BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 1





    Hi, thank you for your answer. I tried this method but this seems to be giving me a histogram for every column in my data rather than a histogram for every rank. It is also plotting the histograms on separate graphs rather than overlapping them.

    – summer_ZUGG
    Mar 21 at 15:54











  • My apologies. If there are more variables and you want the histograms overlapped, try: df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))

    – BCJuan
    Mar 21 at 16:39












  • I have added it as an edit of the main answer so everyone can see it.

    – BCJuan
    Mar 21 at 17:06











  • Thank you so much for this! Very helpful :)

    – summer_ZUGG
    Mar 21 at 17:16















0














You could do something like:



df.loc[:, df.columns != 'string'].groupby('rank').hist(density=True, bins =10, figsize=(5,5))


Basically, what it does is select all columns except string, group them by rank and make an histogram of all them following the arguments.



The density argument set to density=True draws it in a normalized manner, as



Hope this has helped.



EDIT:



f there are more variables and you want the histograms overlapped, try:



df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))





share|improve this answer










New contributor




BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 1





    Hi, thank you for your answer. I tried this method but this seems to be giving me a histogram for every column in my data rather than a histogram for every rank. It is also plotting the histograms on separate graphs rather than overlapping them.

    – summer_ZUGG
    Mar 21 at 15:54











  • My apologies. If there are more variables and you want the histograms overlapped, try: df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))

    – BCJuan
    Mar 21 at 16:39












  • I have added it as an edit of the main answer so everyone can see it.

    – BCJuan
    Mar 21 at 17:06











  • Thank you so much for this! Very helpful :)

    – summer_ZUGG
    Mar 21 at 17:16













0












0








0







You could do something like:



df.loc[:, df.columns != 'string'].groupby('rank').hist(density=True, bins =10, figsize=(5,5))


Basically, what it does is select all columns except string, group them by rank and make an histogram of all them following the arguments.



The density argument set to density=True draws it in a normalized manner, as



Hope this has helped.



EDIT:



f there are more variables and you want the histograms overlapped, try:



df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))





share|improve this answer










New contributor




BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.










You could do something like:



df.loc[:, df.columns != 'string'].groupby('rank').hist(density=True, bins =10, figsize=(5,5))


Basically, what it does is select all columns except string, group them by rank and make an histogram of all them following the arguments.



The density argument set to density=True draws it in a normalized manner, as



Hope this has helped.



EDIT:



f there are more variables and you want the histograms overlapped, try:



df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))






share|improve this answer










New contributor




BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this answer



share|improve this answer








edited Mar 21 at 17:07





















New contributor




BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









answered Mar 21 at 15:43









BCJuanBCJuan

313




313




New contributor




BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






BCJuan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







  • 1





    Hi, thank you for your answer. I tried this method but this seems to be giving me a histogram for every column in my data rather than a histogram for every rank. It is also plotting the histograms on separate graphs rather than overlapping them.

    – summer_ZUGG
    Mar 21 at 15:54











  • My apologies. If there are more variables and you want the histograms overlapped, try: df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))

    – BCJuan
    Mar 21 at 16:39












  • I have added it as an edit of the main answer so everyone can see it.

    – BCJuan
    Mar 21 at 17:06











  • Thank you so much for this! Very helpful :)

    – summer_ZUGG
    Mar 21 at 17:16












  • 1





    Hi, thank you for your answer. I tried this method but this seems to be giving me a histogram for every column in my data rather than a histogram for every rank. It is also plotting the histograms on separate graphs rather than overlapping them.

    – summer_ZUGG
    Mar 21 at 15:54











  • My apologies. If there are more variables and you want the histograms overlapped, try: df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))

    – BCJuan
    Mar 21 at 16:39












  • I have added it as an edit of the main answer so everyone can see it.

    – BCJuan
    Mar 21 at 17:06











  • Thank you so much for this! Very helpful :)

    – summer_ZUGG
    Mar 21 at 17:16







1




1





Hi, thank you for your answer. I tried this method but this seems to be giving me a histogram for every column in my data rather than a histogram for every rank. It is also plotting the histograms on separate graphs rather than overlapping them.

– summer_ZUGG
Mar 21 at 15:54





Hi, thank you for your answer. I tried this method but this seems to be giving me a histogram for every column in my data rather than a histogram for every rank. It is also plotting the histograms on separate graphs rather than overlapping them.

– summer_ZUGG
Mar 21 at 15:54













My apologies. If there are more variables and you want the histograms overlapped, try: df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))

– BCJuan
Mar 21 at 16:39






My apologies. If there are more variables and you want the histograms overlapped, try: df.groupby('rank')['string length'].hist(density=True, histtype='step', bins =10,figsize=(5,5))

– BCJuan
Mar 21 at 16:39














I have added it as an edit of the main answer so everyone can see it.

– BCJuan
Mar 21 at 17:06





I have added it as an edit of the main answer so everyone can see it.

– BCJuan
Mar 21 at 17:06













Thank you so much for this! Very helpful :)

– summer_ZUGG
Mar 21 at 17:16





Thank you so much for this! Very helpful :)

– summer_ZUGG
Mar 21 at 17:16



















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • 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.

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%2fstackoverflow.com%2fquestions%2f55283837%2fhow-do-i-plot-my-histogram-for-density-rather-than-count-matplotlib%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

Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

Swift 4 - func physicsWorld not invoked on collision? The Next CEO of Stack OverflowHow to call Objective-C code from Swift#ifdef replacement in the Swift language@selector() in Swift?#pragma mark in Swift?Swift for loop: for index, element in array?dispatch_after - GCD in Swift?Swift Beta performance: sorting arraysSplit a String into an array in Swift?The use of Swift 3 @objc inference in Swift 4 mode is deprecated?How to optimize UITableViewCell, because my UITableView lags

Access current req object everywhere in Node.js ExpressWhy are global variables considered bad practice? (node.js)Using req & res across functionsHow do I get the path to the current script with Node.js?What is Node.js' Connect, Express and “middleware”?Node.js w/ express error handling in callbackHow to access the GET parameters after “?” in Express?Modify Node.js req object parametersAccess “app” variable inside of ExpressJS/ConnectJS middleware?Node.js Express app - request objectAngular Http Module considered middleware?Session variables in ExpressJSAdd properties to the req object in expressjs with Typescript